Кулдаун на голосование
Меню голосования с двумя кусками состояния: глобальный счётчик, который инкрементят все (общее количество голосов сервера за всё время), и персональная временная переменная, которая блокирует игрока на 24 часа после голоса. Связка incVar (глобальный) с setVarp ::1d (персональный временный) - типичный паттерн “голосуй раз в сутки”.
Что показывает
Заголовок раздела «Что показывает»incVarдля глобальных счётчиков, общих для всех игроковsetVarpс временным суффиксом::1d- Плейсхолдер
%var_:name:default%для глобальных переменных (синтаксис двоеточия и дефолта тот же, что у varp) - Связка глобальных и персональных переменных в одном click-обработчике
- Dual-item для кнопки голосования (состояния ON_COOLDOWN и READY)
Глобальные vs персональные
Заголовок раздела «Глобальные vs персональные»Два семейства переменных:
var_*/ setVar / incVar - глобальные, на весь сервер. Все читают и пишут одно и то же значение. Здесь - для общего количества голосов.varp_*/ setVarp / incVarp - персональные. У каждого игрока своя копия. Здесь - для блокировки кулдауна.
При клике трогаются оба внутри одного блока actions:
actions { incVar: "ame_vote_total" # глобальный счётчик +1 setVarp: "ame_vote_cd::1::1d" # персональная блокировка на 24 часа ...}Глобальный счётчик растёт бесконечно. Персональный кулдаун сам истекает через 1 день, открывая кнопку голосования заново.
Интеграция с реальным голосованием
Заголовок раздела «Интеграция с реальным голосованием»Этот пример - самостоятельная демка. Чтобы привязать к настоящему голосованию (Votifier, MinecraftPocket и т.д.):
- Не давайте игроку кликать по кнопке голосования - награда триггерится внешним vote-сайтом/прокси.
- Используйте ту же связку
incVar+setVarpвнутри Bukkit-листенера, который обрабатывает входящие голоса. - Поставьте перму вроде
iconmenu.canclaimили другой гейт, и это меню превратится в “забрать награду за голос”, а не в “проголосовать”.
В разделе документации про переменные описаны опции персистентности, если нужны гарантии после рестарта на глобальном счётчике.
Попробовать
Заголовок раздела «Попробовать»- Положите бандл в
plugins/AbstractMenus/menus/example/. /am reload.- Введите
/ame_voteв игре. - Кликните на лаймовую кнопку “Голосовать!”. Счётчик растёт, кнопка становится серой с обратным отсчётом 23ч 59м.