Часть четвёртая. BungeeCord.
Содержание:
- Первый раздел
- Часть первая. Быстрый старт.
- Часть вторая. Префиксы и суффиксы.
- Часть третья. Форматы хранения.
- Часть четвёртая. BungeeCord.
- Часть пятая. Мелкие, но важные детали.
- Второй раздел
- Часть первая. Локальные и файловые БД.
Приветствую! Сегодня мы будем разговаривать о работе LuckPerms совместно с BungeeCord. Стоит сразу оговориться, что этот рассказ будет длинным (относительно трёх предыдущих) и потребует знания всех предыдущих частей (особенно часть с форматами хранения).
Для начала разберёмся с тем, как выглядит наша сеть. Самая основа, так сказать. В моём случае оно выглядит так:
Три сервера и один прокси. lobby-сервер идёт как мост, остальные для игры.
Для работы LuckPerms с банджой необходимо установить в config.yml банджи параметр:
ip_forward: true
А также на каждом из серверов в spigot.yml установить:
bungeecord: true
Это стандартные действия для настройки любой банджи. В остальном, со стороны ядра и других плагинов, сервера уже должны быть настроены. На систему прав из config.yml банджи можно не обращать внимания, она самостоятельно отключится после установки LP.
Переходим к LP, здесь нам понадобится установить его на каждый из серверов и на банджу в том числе. Найти файлы для каждой из платформ можно
здесь. Скачиваем, устанавливаем, запускаем банджу. Останавливаем банджу, настраиваем в конфиге LP банджи подключение к БД. Подобную операцию производим с остальными серверами, они все должны быть подключены к одной БД. Нет, даже так — настройки подключения к БД
ДОЛЖНЫ быть
ОДИНАКОВЫМИ на
КАЖДОМ сервере.
Для связки по message-channels (которая вам однозначно нужна), необходимо все права хранить в удалённых БД, таких как MySQL, MongoDB, PostgreSQL, MariaDB и др. Никак иначе.
Для синхронизации мы будем использовать
messaging-channels. Это система оповещений об изменениях, которая распространяет информацию сразу по всем серверам. Никаких CommandSync и перезагрузок. Поскольку мы используем банджу, установим на каждом сервере (на сервере банджи тоже устанавливаем) этот параметр на:
messaging-channels: bungee
А пока мои сервера перезагружаются объясню про то, как работает LP с банджой. Плагин для банджи получает права самой банджи и других плагинов под ней. Но он не добавляет команды управления и не управляет правами на других серверах. Поэтому необходимо устанавливать LP на каждый сервер отдельно и связывать его с БД, чтобы была общая база для всей сети серверов.
Всё, теперь можно приступать к настройке LP для каждого сервера.
Я уверен, что в первой части некоторые обратили внимание на поле "Server" в веб-редакторе:
Здесь по-умолчанию будет стоять global. Чтобы этот параметр работал так, как нам надо, стоит изменить настройки LP по
этой инструкции. Сервера у меня три, назову я их согласно табличке выше. Для банджи там автоматически установлено название bungee.
Всё, теперь перезапускаем наши сервера и вперёд!
Давайте добавим что-нибудь на сервер creative. Судя по названию там должен быть доступен gamemode для обычных игроков. Так и сделаем, удобнее будет провернуть такое через редактор.
А поскольку у нас ещё и банджа, стоит добавить некоторые команды от неё, например /server. Получится что-то вроде:
Небольшое уточнение. Команды от банджи будут работать только тогда, когда установлены на сервер самой банджи (здесь это сервер "bungee"). Настроить права и команды банджи для каждого сервера отдельно не получится, проблема в механизме работы команд и прав BungeeCord.
Применим изменения (не имеет значения на каком сервере это сделать,
messaging-service сразу оповещает об этом всех). Проверка покажет, что на серверах везде работает команда /server, а на сервере creative появилась команда /gamemode.
Попробуем что-нибудь посложнее. Скажем, добавим кастомный префикс для игроков сервера survival. Делается это очень просто, достаточно уточнить сервер после команды на добавление префикса. Как-то так:
Код:
/lp group <группа> meta addprefix <вес> "<префикс>" server=<сервер>
Но с одним важным условием — вес должен быть выше, чем у другого префикса. У меня уже есть префикс с весом 10, значит дополнительный префикс для сервера будет иметь вес 11:
/lp group default meta addprefix 11 "&c[C] &f" server=survival
Всё, теперь на сервере survival у обычных игроков префикс будет отличаться:
Думаю, что на сегодня этого вполне достаточно. Как всегда, с вами был InterWall. Не знаю, будем ли говорить о чём-либо завтра, но хочется обсудить выдачу временных прав.