Как создать меню
Короткий тур по базовым возможностям. К концу страницы у тебя будет рабочее меню: открывается по команде, на кнопке висит действие, которое забирает деньги и выдаёт предмет.
Где лежат меню
Заголовок раздела «Где лежат меню»Все файлы меню - в plugins/AbstractMenus/menus/. Плагин обходит папку рекурсивно, так что вложенные подпапки для организации - ок. Имя файла (без расширения) становится уникальным id меню.
Директорияplugins/AbstractMenus
- config.conf глобальный конфиг плагина
Директорияmenus
- menu.conf создаётся при первом запуске
- shop.conf
Директорияcasino
- blackjack.conf вложенные папки норм
- slots.conf
- variables.db SQLite, не редактировать вручную
Шаг за шагом: твоё первое меню
Заголовок раздела «Шаг за шагом: твоё первое меню»-
Создай файл
Сделай
plugins/AbstractMenus/menus/menu.conf. Два обязательных ключа -titleиsize.menus/menu.conf title: "My first menu"size: 6title- показывается сверху инвентаря.size- количество строк инвентаря (от 1 до 6).
Запусти
/am reload. В консоли появится:[AbstractMenus] Loaded 1 menus -
Добавь активатор, чтобы игроки могли открыть меню
Активатор - всё, что открывает меню: команда, использование предмета, заход на сервер, вход в регион и так далее. Самый простой -
command:menus/menu.conf title: "My first menu"size: 6activators {command: "mymenu"}/am reload, потом в чате:/mymenu. Откроется пустое меню.
-
Поставь кнопку
Кнопки описываются в списке
items: [...]. У каждой записи обязательно естьslotиmaterial.menus/menu.conf title: "My first menu"size: 6activators {command: "mymenu"}items: [{slot: 0material: DIAMOND_SWORDname: "&6Excalibur"}]
slot- индекс ячейки, считается с 0. Кроме числа, бывают диапазоны и матрицы.material- имя материала Bukkit. Полный список в Spigot Javadoc.name- отображаемое имя. Поддерживает цветовые коды через&и плейсхолдеры.
-
Заставь кнопку что-то делать по клику
Блок
click- это список действий. Начни сcloseMenu:menus/menu.conf title: "My first menu"size: 6activators {command: "mymenu"}items: [{slot: 0material: DIAMOND_SWORDname: "&6Excalibur"click {closeMenu: true}}]Перезагрузи, кликни по мечу - меню закроется. На разные кнопки мыши можно повесить разные действия. Полный список - в типах кликов.
Вариации
Заголовок раздела «Вариации»Показывать разные кнопки разным игрокам
Заголовок раздела «Показывать разные кнопки разным игрокам»Добавь к предмету блок rules. Если в одном слоте лежит несколько предметов - выигрывает последний, чьи правила прошли:
items: [ { slot: 0 material: IRON_SWORD name: "&6Экскалибур" }, { slot: 0 material: DIAMOND_SWORD name: "&6Экскалибур" rules { level: 10 } }]Игрок 9 уровня видит железный меч. Игрок 10+ уровня - алмазный.
Списывать деньги по клику
Заголовок раздела «Списывать деньги по клику»click принимает rules (проверка), а ещё ветки actions и denyActions:
items: [ { slot: 0 material: DIAMOND_SWORD name: "&6Экскалибур" lore: "&7Цена: 100 монет" click { rules { money: 100 } actions { itemAdd { material: DIAMOND_SWORD, name: "&6Экскалибур" } takeMoney: 100 } denyActions { sound: ENTITY_VILLAGER_NO } } }]Что происходит по клику:
- У игрока проверяется баланс - есть ли 100 монет.
- Если хватает - в инвентарь добавляется Excalibur и списывается 100 монет.
- Если нет - проигрывается звук недовольного жителя.
Про вложенные деревья правил и инверсию - см. логические структуры.
Закрыть всё меню
Заголовок раздела «Закрыть всё меню»Правила в корне меню проверяются до открытия:
title: "Только для админов"size: 6rules { permission: "i.am.admin"}denyActions { message: "&cУ тебя нет прав на это действие!"}activators { command: "adminmenu" }Игроки без i.am.admin получат сообщение вместо меню.