На этой недели реализовали большой функционал по модерации сервера и удобной настройкой лобби через чат команды.
Игрок
Для каждого аккаунта игрока добавилось новое поле username, это поле уникальное для каждого игрока, оно служит для удобного обращения в чат командах при модерации (кик, мут и т.д).
Система ролей
Позволяет выдавать аккаунту спецальные возможности, наприрме для тестировщиков ранний доступ на фичи. Или модераторам возможность банить или мутить игроков в лобби.
Сам функционал разбит на 2 слоя:
✔️ Глобальные роли — настраиваются через админку, за счет них можно дать аккаунту нужные права, например сделать админом, тестировщиком, модератором на всю игру.
✔️ Лобби роли — роль выдается на скоуп лобби, например что бы в каком то конкретном режиме выдавать роль администратора, модератора и т.д. Так же эти роли зависят от глобальных ролей, если у аккаунта есть роль админа, то и в самом лобби будет такая роль. Админы могут выдавать роли через команды чата для других игроков
Чат команды
Общая система позволяющая регистрировать различные команды и выполнение любой логике при их вызове. Команды начинаются с знака / . На данный момент список команд следующий:
Режим
/fly [on|off] — Включить/выключить полёт
/instabreak [on|off] — Мгновенная ломка блоков
/unlimited [on|off] — Бесконечный инвентарь
/falldamage [on|off] — Урон от падения
Игрок
/heal [username] — Восстановить здоровье (себе или игроку)
/kill [username] — Убить себя/игрока
/clear [username] — Очистить инвентарь
/give <item> [count] [username] — Выдать предмет
Телепорт
/spawn — Телепорт на точку спавна
/tp <x> <y> <z> | <username> — Телепорт к координатам или к игроку
Мир
/summon <mob> [count] — Заспавнить моба
/setblock <x> <y> <z> <block> — Поставить блок
/time <day|night|tick> — Установить время суток
/weather <clear|rain|snow> — Установить погоду
Администрирование / модерация
/role <username> <member|moderator|admin> — Назначить роль игроку
/kick <username> — Кикнуть игрока
/mute <username> — Замьютить в чате
/unmute <username> — Размьютить
каждая команда может иметь различные параметры для активации, например передача координат, id блоков, id предметов и т.д.
#blockworld #devlog