Донат-ранги по уровням
Стандартная раскладка донат-магазина: плитки рангов по возрастанию, у каждой два варианта - “Куплено”, если у игрока уже есть нужное право, и цена + список бонусов, если права нет. Сделано на паттерне дублирующих предметов: по одному варианту на каждое состояние ранга.
Что показывает
Заголовок раздела «Что показывает»- Как масштабировать паттерн двух предметов на много уровней
- Алиасы команд через
command: [..., ...](так что меню открывают и/ame_donate, и/ame_support) - Список бонусов в lore у каждого ранга
- Куда вставить реальную логику покупки (в этом примере просто отправляется сообщение в чат)
Как складываются два варианта
Заголовок раздела «Как складываются два варианта»В каждом слоте ранга объявлено по два предмета. Вариант HAS_RANK имеет rules { permission: "myserver.rank.knight" } и показывает “Куплено” + “Подумайте об апгрейде ниже”. Вариант NO_RANK без правил, показывает бонусы и цену.
Правило отрисовки то же, что и у Магазина с проверкой ранга: предметы обходятся в порядке объявления; в каждом слоте отрисовывается первый предмет, у которого правила прошли. HAS_RANK объявлен первым, поэтому если у игрока есть право - выигрывает он.
Как привязать реальную покупку
Заголовок раздела «Как привязать реальную покупку»Настоящие донат-магазины интегрируются с платёжкой. Типичные варианты:
- Внешний URL: в click-действии отправляем
&aЗайдите на https://example.org/donate, чтобы купить. Игрок покупает на сайте, ранг выдаётся через API. - Внутриигровая валюта: ставим правило
moneyи действиеtakeMoney, как в обычном магазине, потом выдаём ранг черезaddGroup: "knight". - Player Points / токены: то же самое, что money, но через другой провайдер. Можно прямо указать провайдера:
takeMoney: { amount: 5, provider: "playerpoints" }.
В этом примере используется вариант с URL, потому что он самый универсальный. Заменяйте блок click под свой магазин.
Как добавить пятый уровень
Заголовок раздела «Как добавить пятый уровень»Скопируйте пару (HAS_RANK + NO_RANK) для нового уровня, поменяйте слот на свободную позицию (хорошо подходят слоты 27 или 29 в 4-м ряду), обновите имя права, бонусы и цену.
Как попробовать
Заголовок раздела «Как попробовать»- Закиньте бандл в
plugins/AbstractMenus/menus/example/. /am reload.- Введите
/ame_donateили/ame_supportв игре. - Выдайте себе право (например,
lp user <you> permission set myserver.rank.knight true), чтобы увидеть вариант HAS_RANK.