Счётчик и тоггл
Два самых частых примитива состояния в любом GUI: числовой счётчик, который можно увеличивать и уменьшать, и бинарный тоггл. Оба показывают систему персональных переменных (varp) и паттерн dual-item для условного отображения.
Что показывает
Заголовок раздела «Что показывает»incVarp/decVarp/removeVarpдля числовых мутацийsetVarpс шорткатом"name::value"- Синтаксис плейсхолдера
%varp_:name:default% - Правило
existVarpдля проверки “существует ли эта переменная у игрока” - Паттерн dual-item: два предмета на одном слоте, у первого правила, второй - фолбек
refreshMenu: true, чтобы отображение обновлялось без закрытия и переоткрытия меню
Как работает счётчик
Заголовок раздела «Как работает счётчик»Счётчик использует три действия и плейсхолдер:
incVarp: "ame_counter"прибавляет 1 к переменной. Если её нет, плагин сначала автоматически инициализирует её нулём.decVarp: "ame_counter"отнимает 1.removeVarp: "ame_counter"удаляет переменную - фактически сброс в “счётчика нет”.
Отображающий предмет показывает %varp_:ame_counter:0%. Суффикс :0 - значение по умолчанию: когда переменная не существует, плейсхолдер рендерится как 0, а не пустая строка.
Каждое click-действие заканчивается на refreshMenu: true, чтобы отображение обновлялось сразу. Без этого счётчик обновлялся бы только при срабатывании auto-update интервала меню (или никогда, если updateInterval не задан).
Как работает тоггл
Заголовок раздела «Как работает тоггл»Тоггл использует паттерн dual-item: два предмета объявлены на одном слоте, первый рендерится только если его правила проходят, а второй - фолбек.
# Виден, когда тоггл задан{ slot: 15, material: LIME_DYE, rules { existVarp: "ame_toggle" }, ... }
# Виден, когда тоггл НЕ задан{ slot: 15, material: GRAY_DYE, ... } # без правил = всегда проходитКогда у игрока задана переменная ame_toggle, показывается зелёный предмет, и клик удаляет переменную. Когда переменной нет, показывается серый предмет, и клик ставит переменную в “1” (значение неважно для проверки существования, важно лишь, что переменная есть).
Этот паттерн часто используют для вещей вроде “выдать предмет / уже забрано”, “VIP-цена / обычная цена”, “замьючен / размьючен” - любое бинарное состояние, где игрок должен видеть разную картинку.
Кастомизация
Заголовок раздела «Кастомизация»Чтобы поменять имя переменной, замените ame_counter и ame_toggle везде - в действиях, в правиле existVarp и в плейсхолдере. Берите имена с серверным префиксом, чтобы избежать коллизий с другими меню.
Для счётчика с шагом больше 1 используйте объектную форму:
incVarp: [ { name: "ame_counter", amount: 5 }]Попробовать
Заголовок раздела «Попробовать»После установки example pack:
- Положите бандл в
plugins/AbstractMenus/menus/example/. /am reload.- Введите
/ame_counterв игре. - Покликайте. Счётчик сохраняется - закройте меню, откройте снова, значение на месте.