К содержимому
aDonate.
Minecraft

Привилегия на время в LuckPerms: команды и автовыдача

В LuckPerms привилегия - это родительская группа игрока, а срок задаёт команда parent addtemp. Ниже - команды для выдачи, продления и проверки и то, как плагин aDonate выдаёт группу на срок сам, чтобы одна команда подходила и к 30 дням, и к варианту «навсегда».

Группа навсегда и на срок

lp user Steve parent add vip
lp user Steve parent addtemp vip 30d
lp user Steve parent remove vip
lp user Steve parent removetemp vip

add выдаёт группу навсегда, addtemp - на срок: 30d - 30 дней, 12h - 12 часов. remove и removetemp снимают постоянную и временную группу. По окончании срока LuckPerms снимает группу сам, в том числе если игрок не в сети, а в сети серверов с общей базой - на всех серверах сразу.

Продление при повторной покупке

Если у игрока уже есть эта временная группа, повторный addtemp по умолчанию время не добавит: поведение задаёт настройка temporary-add-behaviour в config.yml LuckPerms или последний аргумент команды.

lp user Steve parent addtemp vip 30d accumulate
ЗначениеЧто происходит
denyКоманда отклоняется, срок не меняется. Это значение по умолчанию
accumulateНовый срок прибавляется к остатку
replaceОстаётся больший из двух сроков

Для доната почти всегда нужен accumulate: игрок, который дважды купил 30 дней, ждёт 60.

Права и префикс группы

lp creategroup vip
lp group vip parent add default
lp group vip permission set essentials.fly true
lp group vip meta setprefix 10 "&6[VIP] "

parent add default наследует права обычного игрока, поэтому их не нужно копировать. Число в setprefix - приоритет: если у игрока несколько групп, чат покажет префикс с наибольшим, поэтому старшим привилегиям давайте приоритет выше. Имена прав смотрите в документации своих плагинов: essentials.fly - право EssentialsX.

Что есть у игрока

lp user Steve info
lp user Steve parent info
lp user Steve permission check essentials.fly

parent info показывает группы игрока и сколько осталось у временных. permission check - есть ли у игрока право и откуда оно пришло.

Как выдавать группу на срок из доната

Команду выдачи можно написать прямо на LuckPerms: lp user {player} parent addtemp vip {duration}d accumulate. Но у варианта «навсегда» срок пустой, и такая команда сломается, а значит, для каждого варианта пришлось бы писать свою.

У плагина aDonate для этого своя команда, она подходит ко всем вариантам товара:

adonate group {player} vip {duration}
  • С LuckPerms группа выдаётся через его API. Повторная покупка добавляет дни к остатку при любом значении temporary-add-behaviour, а снимает группу по окончании срока сам LuckPerms.
  • С Vault и другим плагином прав (PermissionsEx, GroupManager) плагин aDonate хранит срок у себя и сам выводит игрока из группы, когда время вышло, даже если игрок не в сети.
  • Если группа у игрока уже есть навсегда, на срок она не выдаётся: игрок увидит, что она у него уже есть.
  • Группу, которой нет на сервере, плагин не выдаёт: покупка ждёт в ящике игрока, а консоль пишет, что исправить.

Действующие привилегии и их сроки игрок видит в /store.

Частые ошибки

  • Группа выдана, а префикса нет. Префиксы показывает чат-плагин, и он должен читать их из LuckPerms или Vault, например EssentialsX Chat вместе с Vault.
  • Повторная покупка не продлила срок. Стоит temporary-add-behaviour: deny, и addtemp без accumulate отклонён.
  • Права не работают на одном из серверов сети. У серверов разные базы LuckPerms. Подключите общую базу (MySQL, MariaDB или PostgreSQL) или выдавайте группу на каждом сервере.
ЕСТЬ ВОПРОСЫ?

Вопросы по теме

Всё, что стоит знать
перед подключением.

01Как выдать привилегию на время в LuckPerms?

Командой lp user <ник> parent addtemp <группа> <срок>, например lp user Steve parent addtemp vip 30d. Чтобы повторная выдача добавляла время к остатку, допишите в конце accumulate.

02Как снять временную группу раньше срока?

Командой lp user <ник> parent removetemp <группа>. Постоянную группу снимает lp user <ник> parent remove <группа>.

03Снимет ли LuckPerms группу, если игрок не заходит на сервер?

Да. Срок хранится в базе LuckPerms, и группа снимается по его окончании независимо от того, в сети игрок или нет.

ВАШ СЛЕДУЮЩИЙ ШАГ

Ваш сервер. Ваш магазин.

Магазин, касса и выдача на сервер настраиваются в одном кабинете. Абонентской платы нет.

Создать магазин