Перейти к содержимому

AbstractMenus

Декларативные GUI-меню на HOCON для Paper и Folia. Активаторы, правила, действия, свойства предметов, анимации и пагинация - всё из конфига.

AbstractMenus - плагин для Spigot/Paper/Folia, на котором собирают интерактивные меню в инвентаре. Чем отличается от типичных GUI-плагинов: гибкая настройка, продуманная производительность и достаточно простых блоков, из которых складываются меню, чтобы один конфиг закрыл несколько узких плагинов сразу.

HOCON в основе

Меню описываются на HOCON - это JSON, в который добавили комментарии, includes, подстановки и шаблоны. См. формат HOCON.

Активаторы

Меню можно открыть по команде, по использованию предмета, при заходе на сервер, при входе или выходе из региона, по клику на NPC - и не только. Подробнее в справочнике по активаторам.

Правила и действия

Меню это набор условий и действий: проверяй баланс, права, регионы, предметы, JS-выражения - и собирай эффекты как нужно. См. правила и действия.

Расширяемость

Встроенные действия, правила и провайдеры регистрируются через тот же SPI, что и внешние аддоны. Можно добавить свои или подключить готовые от сообщества - форкать плагин не придётся.

  • Файл меню - .conf файл в plugins/AbstractMenus/menus. В одном файле описано одно или несколько меню.
  • Активатор - то, что открывает меню: команда, фраза в чате, использование предмета, вход в регион, клик по NPC и так далее.
  • Правило - условие, которое проверяется перед открытием меню, перед показом предмета или перед запуском цепочки действий.
  • Действие - то, что делает плагин: выдать предмет, забрать деньги, выполнить команду, отправить сообщение, открыть другое меню.
  • Предмет - кнопка в инвентаре или объект, на который ссылается правило или действие.
  • Биндинги - переопределения свойств предмета на лету. Срабатывают по правилам.
  • Переменная - именованная строка или число, лежат в базе плагина и доступны через плейсхолдеры.
  • Шаблон - любой блок, вынесенный в именованное определение и подставляемый по ссылке.
  • Кадр анимации - один кадр анимированного меню.
  • Каталог - динамическая коллекция, на которой работают генерируемые меню.
  • Экстрактор значений - функция, которая вытаскивает свойство из контекстного объекта: блока, сущности, предмета, региона, мира.
  • Провайдер - плагин или аддон, через который AbstractMenus работает с экономикой, правами, уровнями, плейсхолдерами или скинами. У каждого свой id и приоритет; можно выбирать конкретный на действие или задать дефолтный в config.conf.
  • Аддон - отдельный jar, регистрирует свои действия, правила, провайдеры и прочее через тот же SPI, что и сам плагин. Поставляется двумя способами, см. Поставка аддонов.
/am open <menu_name> Открыть меню без активатора
/am open <menu_name> <player> Открыть меню другому игроку
/am reload Перезагрузить все файлы меню
/am serve Следить за папкой menus и перезагружать при изменениях (только для разработки)
/am version Показать версию плагина
/am addons list|info|load|reload|rescan Управление аддонами
/var get|set|rem|inc|dec|mul|div ... Управление глобальными переменными
/varp get|set|rem|inc|dec|mul|div ... Управление персональными переменными

Право am.admin даёт доступ ко всем командам выше. Полный справочник по командам.

AbstractMenus интегрируется с этими плагинами, если они стоят на сервере. Если плагина нет, AbstractMenus просто пропустит соответствующую интеграцию, без ошибок:

  • Vault - плагин экономики, AbstractMenus берёт через него баланс для правил и действий с деньгами
  • PlaceholderAPI - дополнительные провайдеры плейсхолдеров
  • LuckPerms - правила и действия для прав и групп
  • WorldGuard - активаторы и правила на основе регионов
  • Citizens - активаторы по NPC
  • HeadDatabase - кастомные головы как предметы
  • MMOItems - брать предметы из реестра MMOItems
  • SkinsRestorer - смена/сброс скинов игроков
  • ItemsAdder - кастомные предметы по namespaced id
  • Oraxen - кастомные предметы по id Oraxen