Необходимо создать Bukkit-плагин для связки BungeeCord серверов

Статус
Закрыто для дальнейших ответов.

lightalex

Новичок
Пользователь
Баллы
16
Имя в Minecraft
now_max
Всем привет!
Необходимо разработать плагин, который будет распределять игроков по игровым серверам
Сервер мини-игр, есть главное лобби, есть мини-лобби (каждое со своей игрой)
Из мини-лобби можно попасть на сервер с игрой
В мини-лобби будет установлен стенд с табличками для выбора нужного игрового сервера
Вот об этом стенде и игровых серверах и пойдет речь в тз
Соединяет все сервера BungeeCord, ядра серверов - Spigot (но плагин надо писать под чистый Bukkit)

Жду ваших предложений!

ТЗ:

Я вешаю табличку:
[CREATE] - статус
TNT Run (A) - имя карты
0 In Lobby - текущее кол-во игроков (постоянно обновляется)
12 Per Game - максимальное кол-во игроков

Далее плагин распознает это, ищет сервера с данной картой, преобразуя все буквы названия карты с таблички в нижний регистр, заменяя все пробелы нижним подчеркиванием и удаляя скобки, а также добавляет в конце номер сервера по счету (то есть при данной табличке он ищет сервера tnt_run_a_[номер])
Далее он копирует карту из папки tnt_run_a_map (то есть вместо номера подставляем просто слово map) в каждый сервер и их всех перезагружает
На табличке появляется статус [JOIN] (зеленого цвета)
При пкм по табличке, игроков забрасывает на самый младший по номеру сервер (ну то есть на tnt_run_a_1, если такого нет на tnt_run_a_2 и т.д.)
Когда набирается нужное количество игроков, плагин начинает забрасывать игроков на пустой сервер (попутно проверяя, а не освободилось ли место на нестартанувшем сервере?)
После того как игра на сервере заканчивается, плагин должен телепортировать всех игроков в лобби где находится табличка, пересоздать карту и перезагрузить сервер
Далее все по новой

При обнаружении свежезапущеного сервера (допустим я его запустил), ему копируется карта и сервер перезагружается, после чего он готов к приему игроков
Если по какой-то причине нет свободных серверов или все отключены, на табличке выводится статус [WAIT] (красным цветом)

Необходимо предоставить команды оповещения плагина о:
  • статусе «набор игроков»
  • статусе «игра в процессе»
  • статусе «игра закончена»
  • статусе «технические работы»
Сервер может вдруг аварийно выключиться, это надо учесть
Админы, Модераторы и Випы (должна быть настройка пермов) могут присоединится к любому серверу «набор игроков» + Админы и Модераторы (тоже должна быть настройка пермов) могут присоединится к серверам «игра в процессе» и «технические работы
» + Строители могут присоединятся к серверам «технические работы»
Тут думаю понятно что должны быть очень гибкая система настройки доступов

Необходимо создать команды:
  • Просмотра списка серверов и кол-вом игроков на них, статуса (к примеру при вводе /servers list tnt_run_a будет показан список всех серверов tnt_run_a)
  • Выключение сервера. При вводе этой команды, плагин ждет пока сервер закончит игру. Затем стопорит сервер. (это команда нужна для того чтобы не случился сбой при работе плагина если выключить сервер + чтобы игроки не заметили отключение сервера) (пример команды - /servers stop tnt_run_a_1, либо для всех серверов /servers stop tnt_run_a)
Приятным бонусом было бы возможность плагина автоматически создавать новые сервера при нехватке места для игроков. То чтобы плагин копировал папку с исходниками сервера, поставлял туда карту и запускал его.
А мега бонусом (при условии реализации "приятного бонуса") было бы то что плагин мог автоматически стопорить и удалять "излишок" серверов. Ну допустим у нас 10 серверов, а постоянно в игре только 3, тогда надо оставить 5-6 серверов (для подстраховки).

Также необходимо создать плагин или взять готовый, который будет образовывать группы (party) и перекидывать группу за лидером, но это уже после разработки первого плагина (как дополнение)
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх