Коротко: создайте в LuckPerms по группе на привилегию, свяжите их наследованием (lp group premium parent add vip), выдайте права и префикс с весом ниже, чем у персонала. Покупку навсегда выдавайте командой lp user <ник> parent settrack donate <группа>, покупку на срок — lp user <ник> parent addtemp <группа> 30d accumulate. Эти команды вписываются в товар автодоната, и сервер выдаёт привилегию сам. В привилегию кладите косметику и удобства, но не преимущество в бою и не обход античита.
Схема привилегий
| Группа | Вес | Наследует | Что даёт (пример) |
|---|---|---|---|
| default | — | — | Обычные команды режима |
| vip | 10 | default | Префикс, цветной чат, /hat |
| premium | 20 | vip | Всё от vip + цветной ник, больше точек дома |
| elite | 30 | premium | Всё от premium + свой префикс и наборы косметики |
Наследование избавляет от повторов: premium получает все права vip, elite — все права premium. Вес решает конфликты: при нескольких группах у игрока побеждают права, префикс и основная группа с большим весом — по умолчанию LuckPerms выбирает основную группу по весу (primary-group-calculation: parents-by-weight).
Создаём группы и наследование
lp creategroup vip
lp creategroup premium
lp creategroup elite
lp group vip parent add default
lp group premium parent add vip
lp group elite parent add premium
lp group vip setweight 10
lp group premium setweight 20
lp group elite setweight 30
lp group vip setdisplayname VIPsetdisplayname задаёт отображаемое имя группы — LuckPerms называет его псевдонимом. Имя самой группы оставьте латиницей без пробелов: его вы будете писать в командах и в товарах магазина. Разработчики советуют оставлять между весами запас (сами они приводят шаг 100 вместо 1), поэтому в схеме шаг 10: потом можно вставить новую привилегию между существующими.
Что положить в привилегию
Права выдаются группе: lp group vip permission set <право> true. Ниже — популярные права EssentialsX из его документации; права других плагинов ищите в их документации или через /lp verbose.
| Что даём | Права | По правилам Mojang |
|---|---|---|
| Префикс | meta setprefix в LuckPerms (раздел ниже) | Косметика — можно |
| Цветной чат | essentials.chat.color (нужен модуль EssentialsX Chat) | Косметика — можно |
| Цветной ник без смены текста | essentials.nick и essentials.nick.changecolors | Косметика — можно |
| Блок на голову | essentials.hat | Косметика — можно |
| Больше точек дома | essentials.sethome.multiple и essentials.sethome.multiple.vip | Удобство — зависит от режима |
| Наборы предметов | essentials.kit и essentials.kits.<набор> | Косметические предметы — можно; оружие и броня сильнее, чем у остальных, — нельзя |
/fly, /god, /heal, /feed | essentials.fly, essentials.god, essentials.heal, essentials.feed | Преимущество в выживании и PvP — нельзя |
essentials.nick.changecolors разрешает красить ник, но текст должен совпадать с настоящим ником — так покупатель не выдаст себя за другого игрока. Число домов задаёт sethome-multiple в config.yml EssentialsX: по умолчанию там есть default: 3, vip: 5 и staff: 10, а игроку нужны оба права из таблицы.
Префиксы и как их показать
lp group vip meta setprefix 10 "&a[VIP] "
lp group premium meta setprefix 20 "&b[Premium] "
lp group elite meta setprefix 30 "&6[Elite] "
lp user Steve meta info- Вес префикса — первое число. Из всех префиксов, которые игрок имеет и наследует, показывается префикс с наибольшим весом.
lp user <ник> meta infoпокажет их все по порядку. - Чат. LuckPerms хранит префиксы, но чат не форматирует: нужен Vault и плагин чата, который читает данные через Vault, например EssentialsX Chat.
- Таб и неймтеги. TAB берёт префикс из LuckPerms своим плейсхолдером
%luckperms-prefix%. - Меню, скорборды, голограммы. Через PlaceholderAPI:
/papi ecloud download LuckPerms, затем/papi reload— и в плагинах работает%luckperms_prefix%.
Градиентный префикс удобно собрать в генераторе градиентного текста. Если игрок одновременно модератор и VIP, при весах из схемы выше он увидит префикс модератора.
Привилегия на месяц
lp user Steve parent addtemp vip 30d accumulate
lp user Steve parent removetemp vip 30d
lp user Steve parent removetemp vipparent addtempвыдаёт группу на срок:30d— 30 дней,1mo3d13h45m— месяц, 3 дня, 13 часов и 45 минут. Вместо срока можно указать время окончания в формате unix.- `accumulate` обязателен для продлений. По умолчанию
temporary-add-behaviour: deny: если у игрока уже есть vip на время, повторная выдача просто не сработает. Сaccumulateновый срок прибавится к остатку, сreplaceостанется более длинный. parent removetemp vip 30dвычитает 30 дней из срока — удобно при возврате одного месяца из нескольких; без срока снимает временную группу целиком.- Истёкшие права LuckPerms проверяет каждые 3 секунды, поэтому привилегия снимается вовремя и без перезапуска.
Сколько осталось, игрок увидит через PlaceholderAPI: %luckperms_group_expiry_time_vip% — остаток срока группы vip.
Повышение: трек привилегий
Трек — лестница групп. Сам LuckPerms приводит донат-трек как пример: игрока повышают по нему при каждой покупке «улучшения» привилегии. На наследование трек не влияет — только на то, куда ведут повышение и понижение.
lp createtrack donate
lp track donate append vip
lp track donate append premium
lp track donate append elite
lp user Steve promote donate
lp user Steve parent settrack donate premiumpromote donateпереводит игрока на следующую ступень и снимает предыдущую. Если игрока ещё нет на треке, он попадёт в первую группу — vip. Поэтомуpromoteподходит для товара «улучшение», а не для покупки конкретной привилегии.parent settrack donate premiumставит игрока сразу на нужную ступень и снимает только группы этого трека — группы персонала и другие останутся. Это лучшая команда для товара «Premium навсегда».
Автовыдача из магазина
Автодонат выполняет на сервере команды, которые вы вписали в товар, — своим плагином или по RCON. Как выбрать сервис и почему лучше плагин, а не открытый RCON, — в статье автодонат для сервера. Для привилегий из этой статьи команды такие:
| Событие | Команда в товаре |
|---|---|
| Покупка навсегда | lp user <ник> parent settrack donate premium |
| Покупка на месяц и продление | lp user <ник> parent addtemp premium 30d accumulate |
| Улучшение на ступень | lp user <ник> promote donate |
| Возврат или чарджбэк (навсегда) | lp user <ник> parent remove premium |
| Возврат одного месяца | lp user <ник> parent removetemp premium 30d |
<ник> подставьте переменную ника вашего сервиса — каждый пишет её по-своему, смотрите его документациюСеть серверов. Чтобы привилегия действовала на всех серверах сети, LuckPerms на них должен работать с общей базой — см. MySQL для плагинов. С MySQL или MariaDB LuckPerms по умолчанию сам оповещает остальные серверы об изменениях через базу. Привилегию только для одного сервера выдают с контекстом: lp user <ник> parent add vip server=survival, где survival — значение server из конфига LuckPerms этого сервера.
Что можно продавать в привилегии
Minecraft Usage Guidelines разрешают продавать привилегии, которые влияют на игру, только если они не портят игру другим и не дают преимущества в состязании; косметику — кроме плащей и того, что выглядит как плащ. Цены и содержимое привилегий должны быть видны до входа на сервер, а каждый, кто платит, получает онлайн-историю своих покупок. Подробный разбор, включая кейсы и валюту, — в статье монетизация и EULA.
Привилегия не должна обходить античит
Самая дорогая ошибка в донате — права, которые отключают проверки. Иммунитет к античиту — это преимущество над честными игроками, а платят донатеры как раз за честный сервер. Поэтому:
- Никаких `*` в донат-группах. Подстановочный знак выдаёт все права, которые начинаются с этой строки, а
*целиком — вообще все: права-исключения античитов, команды модерации, обходы ограничений. В LuckPerms подстановочные права включены по умолчанию (apply-wildcards: true). - Читайте список прав целиком. Права с
bypassв названии часто снимают ограничения: в EssentialsX, например,essentials.nick.blacklist.bypassобходит чёрный список ников. Выдавайте донату только то, что понимаете. - Права античита — только администраторам. Командам DGuard нужно право
dguard.admin; донат-группам оно не нужно ни напрямую, ни через*.
DGuard — лучший античит для современного сервера Minecraft — проверяет бой, движение, пакеты, инвентарь, постройку и мир и закрывает все 47 видов читов из сравнения с GrimAC, Vulcan, Polar, Intave и Matrix. Он собирает улики и не спешит с выводом, а строгость наказаний настраиваете вы. До 30 игроков онлайн DGuard бесплатен, дальше вы платите за онлайн и число серверов — защита на всех тарифах одинаковая.
Частые вопросы
Как сделать донат-привилегию на сервере Minecraft?
Поставьте LuckPerms, создайте группу (lp creategroup vip), выдайте ей права и префикс, а покупателя добавляйте командой lp user <ник> parent add vip. В автодонате эту команду вписывают в товар, и сервер выдаёт привилегию сам.
Как выдать привилегию на 30 дней?
Командой lp user <ник> parent addtemp vip 30d accumulate. Без accumulate повторная выдача тому, у кого vip ещё не истёк, не сработает: по умолчанию LuckPerms запрещает дубликаты временных групп.
Почему префикс привилегии не виден в чате?
LuckPerms не форматирует чат сам. Нужны Vault и плагин чата, который читает префиксы через Vault, например EssentialsX Chat. Если префикс модератора перекрывает купленный — так и задумано весами.
Можно ли продавать /fly и киты?
Usage Guidelines запрещают продавать то, что даёт преимущество в состязании или портит игру другим. Полёт, бессмертие и наборы оружия сильнее, чем у остальных, на выживании и PvP дают преимущество. Косметика — префиксы, цвета, блок на голову — разрешена.
Источники
- LuckPerms: команды parent (addtemp, settrack, removetemp)
- LuckPerms: треки
- LuckPerms: команды пользователя (promote)
- LuckPerms: веса
- LuckPerms: префиксы, суффиксы и meta
- LuckPerms: плейсхолдеры
- LuckPerms: настройки (temporary-add-behaviour, apply-wildcards)
- LuckPerms: временные права и подстановочные знаки
- LuckPerms: контексты
- LuckPerms: config.yml по умолчанию (messaging-service)
- TAB Wiki: плейсхолдеры
- EssentialsX: права на цвета
- EssentialsX: plugin.yml (список прав)
- EssentialsX: config.yml (sethome-multiple)
- Minecraft Usage Guidelines: Servers and hosting
- DGuard — лучший античит для современного сервера Minecraft: сравнение проверок с GrimAC, Vulcan, Polar, Intave и Matrix
- DGuard: установка, требования и решение проблем
- DGuard: поддерживаемые версии Paper и Leaf