Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление
  2. Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб NTLauncher C (Си) ServerManager - обвязка NTLauncher'а для UNIX систем

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем serega6531, 12 апр 2014.

  1. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    [​IMG]Обвязка больше не разрабатывается. Все исходники на github'е.

    Что это?

    Это — копия официальной обвязки NTLauncher'а от лалки @HoShiMin'а. Недостаток его обвязки в том, что она написана на Delphi, а значит не работает на Unix системах. Так не пойдёт — сказал я, и переписал её на чистом C. В чём преимущества этой обвязки?

    Преимущества:
    1. Написана на чистом C, а значит быстрая и поддерживает самую распространённую серверную ОС — Linux.
    2. Может хранить данные в MySQL базе данных, что ускоряет работу и улучшает взаимодействие администратора с данными. Также это открывает простор для web-скриптов на сайте, например, вы можете сделать регистрацию и в лаунчере, и на сайте.
    3. Поддерживает почти все функции, что и в оригинальной обвязке.
    4. Собственный модуль хеширования на основе OpenSSL, поддерживающий несколько вариантов хешей (в т.ч. md5, SHA1, SHA256, SHA512 и другие).
    5. Автоматическое удаление вайтлиста (Защитит при неожиданных выключениях сервера).
    6. Открытый исходный код.
    7. Хорошо документирована.
    8. Легкая в настройке.
    Настройка:
    Настроить эту обвязку очень просто. Откройте файл settings.h и найдите следующий текст:
    Код:
    /* НАСТРОЙКИ */
    #define SERVER_PORT 65533 //Порт, на котором запущен сервер
    #define MAXTHREADS 15 //Максимальное количество одновременно обрабатываемых игроков
    #define CLIENT_VERSION 0 //Версия клиента
    #define CLIENT_HASH "58e8c6b9374e0d4ff71df7ba3ba136cc" //Хеш клиента
    #define LAUNCH_STRING "cd server && java -Xms512M -Xmx512M -jar craftbukkit.jar" //Строка, запускающая сервер. Обязателен переход в папку сервера.
    #define PATH_TO_WHITELIST "server/white-list.txt"
    #define TIME_TO_ENTER 90 //Время на вход в игру (в секундах)
    #define HASH_ALGO HASH_MD5 //Алгоритм хеширования
    #define DATABASE DB_MYSQL //Где хранится информация об игроках. Может быть DB_MYSQL или DB_FILE
    Как видите, комментарии после каждой строки объясняют назначение каждого параметра. Если вы выбрали файлы, как базу данных, но вы можете изменить параметр HWIDS_DIR ("PlayersHWIDs/" по умолчанию). Она показывает папку для хранения Hardware ID игроков. А если вы выбрали MySQL, как базу данных, то вы должны настроить данные для подключения. Вот они:
    Код:
    /* Настройки MYSQL */
    #define MYSQL_HOST "127.0.0.1"
    #define MYSQL_USER "authserver"
    #define MYSQL_PASS "authserverpass"
    #define MYSQL_PORT 3306
    #define MYSQL_DB "authserver"
    Тут название каждого параметра само говорит, за что он отвечает.

    Компиляция:
    После настройки необходимо скомпилировать обвязку. Для этого перейдите в папку с обвязкой (cd NTLauncher-authserver/) и используйте команду make СС=<compiller>, где <compiller> - ваш любимый C компилятор. Вы обязательно должны указать компилятор, иначе обвязка не скомпилируется.
    Внимание! Для работы нужен OpenSSL и MySQL C Connector.

    Команды консоли:
    • banuser <name> - банит все HWID'ы пользователя
    • banhwid <hwid> - банит введённый HWID
    • stop - выключает сервер и обвязку
    Только если вы выбрали MySQL как БД:
    • unbanuser <name> - Разбанивает HWID'ы пользователя
    • unbanhwid <hwid> - Разбанивает выбранный HWID
    Остальные команды посылаются напрямую серверу.

    Скриншот:
    [​IMG]

    Ссылки:
    GitHub репозиторий проекта - тут
    Ссылка на zip архив с последним коммитом - вот он
    Ссылка на оригинальную обвязку - вот она

    Спасибо @HoShiMin и @Asmodai за помощь в разработке.
     
    Последнее редактирование: 21 апр 2014
  2. Хостинг MineCraft
    <
  3. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Очки нужны?
     
  4. Igor_22

    Igor_22 Старожил Пользователь

    Баллы:
    123
    Skype:
    igor_04041991
    Имя в Minecraft:
    Oddshot
    можно понять по другому
    NTLauncher и ServerManager
     
  5. blogger2

    blogger2 Старожил Пользователь

    Баллы:
    123
    Skype:
    ilja0176
    Имя в Minecraft:
    XuPoH
    отлично!
     
    serega6531 нравится это.
  6. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Добавлены солёные хеши. Настройки перемещены в settings.h.[DOUBLEPOST=1397579063,1397480600][/DOUBLEPOST]Работаю над хранением данных в mysql и разбаном.[DOUBLEPOST=1397656616][/DOUBLEPOST]Добавил поддержку MySQL (commit). @HoShiMin, твой ход! :D[DOUBLEPOST=1397671871][/DOUBLEPOST]Обновил дизайн темы, улучшил инструкции.[DOUBLEPOST=1397673748][/DOUBLEPOST]Приглашаю посмотреть @alexandrage.
     
    twixi007, buges и Dvladislav нравится это.
  7. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Забавное будущее у такой дырявой авторизации. Я доверяю online mode true на все овер100% и никогда не променяю на подобную клоаку.
     
  8. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    В каком смысле дырявая?
     
  9. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Да, пока не кончится время авторизации, можно будет зайти с любого батника. Все претензии к @HoShiMin
     
  10. Dvladislav

    Dvladislav Старожил Переводчик Пользователь

    Баллы:
    173
    Не твои ли слова, что все можно обойти? Данный лаунчер прекрасно справляется с обязанностями лаунчера: скачал, распаковал, запустил. Хотя тут можно согласится, не понятно зачем было портить лаунчер такой странной авторизацией.
    Спасибо @serega6531 за реализацию для Unix систем.[DOUBLEPOST=1397820222,1397803686][/DOUBLEPOST]Как насчет реализации функции авторестарта сервера?
     
    serega6531 нравится это.
  11. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Хорошая идея. Постараюсь реализовать.
     
  12. Meowt

    Meowt Старожил Пользователь

    Баллы:
    123
    Хотелось бы спросить - зачем нужен авторестарт сервера? В том же RemoteToolkit есть авторестарт, достаточно указать его вместо ядра сервера.
     
  13. Dvladislav

    Dvladislav Старожил Переводчик Пользователь

    Баллы:
    173
    А он запуститься? Он у меня сейчас и стоит, поэтому и предложил, я пока на стадии "ковыряюсь", ничего не проверял. Да и коль ставим серверную утилиту для лаунчера, было бы приятно если бы она имела именно серверный функционал, а не чисто моста для лаунчера.
     
  14. Meowt

    Meowt Старожил Пользователь

    Баллы:
    123
    Да, достаточно добавить параметры к запуску. Либо можно использовать любой удобный плагин рестарта.
     
  15. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Я о том и говорю, лаунчер неплохой, но зачем дырявую авторизацию то делать?
     
  16. Asmodai

    Asmodai Активный участник Пользователь

    Баллы:
    93
    @serega6531, снова ты дырок наделал. Допиши весь функционал какой нужен, я уж тогда сам скачаю, секьюрность улучшу.
    Постарайся поменьше вставлять #if DATABASE == DB_FILE, там можно в функции это дело вытащить. Особенно ради объявления переменной в начале функции. В C99 и выше это уже не обязательно, скорее традиция. Можно и перед использующим эту переменную кодом. Удобство чтения без лишних ifdef в логике важнее.
     
    serega6531 нравится это.
  17. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Сейчас делаю перезапуск сервера при краше, но не могу протестировать. Сервер не желает ложиться, а при убийстве процесса kill'ом pid остаётся в списке (pidof java).[DOUBLEPOST=1397991918,1397990958][/DOUBLEPOST]
    Улучшите секьюрность сейчас. Лучше сразу на github'е.[DOUBLEPOST=1398092824][/DOUBLEPOST]Решил больше не разрабатывать эту обвязку. Сделал новый коммит с почти доделанным авторестартом сервера, кому надо - переделает.
     
    Последнее редактирование: 20 апр 2014
  18. zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
    Это веб?
     
  19. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    А что же ещё? Только я прекратил над ней работу. Пользуйтесь официальной или доделывайте эту.
     
  20. zuma2

    zuma2 Старожил Пользователь Заблокирован

    Баллы:
    173
    Skype:
    sytems.admin
    Имя в Minecraft:
    zuma2
    основа вебки софт? значит не веб
     
  21. Автор темы
    serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Уж простите, раздела "почти-веб" не было.
     

Поделиться этой страницей