Java-серверы; совместимость Bedrock отмечается отдельно · 6 мин чтения

Настройте права игроков через роли, контексты и реальные проверки

На Paper удобно проверять права через LuckPerms. Сначала выдайте обычной группе одно реальное разрешение, затем проверьте разрешённое действие и отказ аккаунтом без OP; ниже — готовый пример с EssentialsX /home.

Редакция LonelyCraft · Обновлено

Схема: Роль → Право → Тест
Группа задаёт роль, точный узел разрешает действие, обычный аккаунт проверяет результат. Авторская схема LonelyCraft.

Установите инструменты и выберите настоящее право

Скачайте Bukkit-вариант LuckPerms и основной JAR EssentialsX. Для тестового Paper положите их в plugins при остановленном сервере и запустите его. В консоли проверьте lp info и plugins; любые ошибки загрузки исправьте до работы с ролями.

В справочнике прав EssentialsX найдите essentials.home и essentials.sethome. Это реальные узлы. Пример ниже создаёт группу member, разрешает собственный дом и делает её родителем default, поэтому доступ получат обычные игроки. Выполняйте строки в консоли сервера, без /.

Создайте группу и проверьте первый дом

После этих команд выполните в консоли deop ВашНик. Зайдите обычным игроком, в безопасном месте введите /sethome, отойдите и введите /home. Успех — вернулись в точку дома. Затем попробуйте /gamemode creative: наша группа не должна давать управление режимом. Команды наследования описаны в LuckPerms Command Usage.

lp creategroup member
lp group member permission set essentials.home true
lp group member permission set essentials.sethome true
lp group default parent add member

Исследуйте отказ, прежде чем расширять доступ

В консоли выполните lp user ВашНик permission check essentials.home: проверьте итоговое значение и возможный контекст. Для краткой записи включите lp verbose on, повторите ровно одну проблемную команду игроком и выполните lp verbose paste, затем lp verbose off. В созданном отчёте смотрите конкретный узел и источник результата по инструкции Verbose.

Если нужна смена мира или временная роль, проверяйте именно этот контекст. Не выдавайте essentials.* ради одной команды: он охватывает множество действий. Открытое меню проверяйте отдельно от ручного /home, поскольку кнопка может вызывать другую команду.

Сохраните выгрузку и проверьте отзыв

Перед массовыми изменениями выполните lp export before-permissions, найдите созданную выгрузку в plugins/LuckPerms и сохраните её вне runtime. Название и расположение экспортного файла покажет ответ команды; правила есть в General Commands.

Для отзыва нашего примера выполните lp group member permission unset essentials.home, затем повторите /home тем же игроком. Если доступ остался, снова используйте permission check: персональный узел или другая группа может сохранять его. Верните точечное право только после понимания источника. Количество домов настраивается отдельно в EssentialsX: наличие /sethome само по себе не обещает несколько точек.

Опишите роли через конкретные действия

Начните с таблицы «роль — действие — область». Обычный игрок строит в разрешённом мире, помощник отвечает на вопросы, модератор рассматривает обращения, администратор управляет настройками. Ранги с удобствами не должны наследовать административную группу только потому, что она уже содержит нужную команду. Вместо этого выделите точное право и понятный лимит.

В LuckPerms существует наследование групп, пользовательские права и контексты. Контекст позволяет ограничить узел сервером или миром, а временная выдача — сроком. Это полезно для пробного доступа, но требует проверки итогового разрешения в месте действия. Право, выданное в одном мире, может отсутствовать в другом; тест на спавне не заменяет проверку Survival.

Небольшой пример назначения

Для группы member выберите документированный узел example.notes.use. Команда lp group member permission set example.notes.use true демонстрирует форму назначения: example.notes.use здесь условное право учебного плагина, не готовый узел Essentials. Чтобы базовая группа наследовала member, используйте документированную форму lp group default parent add member. Перед выполнением проверьте, что направление соответствует вашей модели.

Не копируйте wildcard вроде plugin.* вместо изучения списка. В нём могут оказаться опасные административные действия, обход лимитов и изменение чужих данных. Отрицательное право и положительное наследование способны создавать сложный итог. Если результат неожиданен, исследуйте эффективный узел у конкретного игрока, а не добавляйте ещё одну широкую группу.

Политика должна проверяться внутри действия, независимо от видимости команды в интерфейсе. Команды и runtime-права.

Найдите проверку, которую реально вызывает плагин

Название кнопки и команды не всегда совпадает с permission. Сверьте права в справочнике команд EssentialsX, если проверяете этот плагин, затем используйте verbose LuckPerms для наблюдения проверок. Ограничьте запись нужным игроком и коротким сценарием, чтобы увидеть значимые узлы. Сотни строк всех серверных проверок мешают найти одно запрещённое действие.

Выполните команду от обычного аккаунта и сравните отказ с журналом разрешений. Проверьте основное имя, алиас и подкоманду. Некоторые действия дополнительно проверяют право обхода кулдауна или числового лимита. Если команда открывает меню, убедитесь, что сама операция повторно проверяет доступ после открытия: состояние группы может измениться между показом и кликом.

  1. Уберите OP у тестового аккаунта и проверьте его группы.
  2. Выберите один документированный узел и ожидаемое действие.
  3. Выполните успешный и запрещённый сценарий.
  4. Сравните результат в каждом нужном мире или сервере.
  5. Проверьте лимит и срок временной выдачи.
  6. Повторите действие после переподключения.

Проверяйте лимиты на границе

Если ранг разрешает три дома, создайте первый, третий и четвёртый. Сам факт доступности /sethome ещё не описывает лимит. Аналогично проверяйте размер привата, число выставленных лотов и время между командами. Числовые узлы разных плагинов могут иметь разную логику выбора: максимальное значение, приоритет или конкретную конфигурацию.

Не обещайте функцию на сайте, пока не подтверждены команда и реальный предел. Удобно хранить каталог рангов рядом с проверками и генерировать описание из того же источника, если проект это допускает. Иначе после ручной правки группа получает четыре дома, а карточка продолжает обещать пять. Такая разница создаёт повторные обращения поддержки.

Показ доступности в меню должен совпадать с фактическим разрешением команды. Кнопки по ролям.

Изменение прав и возможность возврата

Перед массовой правкой создайте поддерживаемую резервную выгрузку LuckPerms и запишите точные команды изменения. Имя группы лучше сохранять стабильным: переименование отображаемого префикса обычно не требует создания новой роли. Не смешивайте косметический текст, идентификатор группы и её функциональные права.

После выдачи временного доступа проверьте его истечение. После отзыва — основной путь и альтернативные алиасы. Особое внимание уделите игрокам, у которых есть персональный узел: удаление группы не обязательно убирает отдельное пользовательское разрешение. Поэтому тестируйте эффективное состояние, а не только таблицу inheritance.

Для оплаты ранга отделяйте покупку от назначения. Повторный запрос должен находить прежнюю операцию, а успешное сообщение — следовать подтверждению записи. Если система выдаёт группу после внешнего платежа, журнал связывает идентификатор оплаты, игрока и итог. Это помогает восстановить доступ при сбое без повторной покупки и случайной второй выдачи.

Частые вопросы

Почему у администратора команда работает, а у игрока нет?

OP может обходить обычную модель доступа. Проверяйте группу и эффективный узел у аккаунта без OP в том мире, где выполняется действие.

Можно ли выдать plugin.* ради одной команды?

Такое право может включать административные функции и обходы. Найдите точный узел и проверяйте реальный сценарий, включая алиасы и подкоманды.

Как выяснить, какое право проверяется?

Используйте verbose LuckPerms для конкретного игрока и действия, затем найдите зарегистрированный узел в документации нужного плагина. Название команды не гарантирует название permission; тестируйте обычным аккаунтом без OP.

Почему отзыв группы не забрал команду?

У игрока может остаться персональное право или другая наследуемая группа. Исследуйте итоговый узел, контекст и временные назначения.

Просмотры: … · Один просмотр с браузера за день

Было полезно?Общий счёт: …

Одна реакция с браузера. Нажмите повторно, чтобы снять её, или выберите другую.

Источники и документация

Minecraftсервер Minecraftадминистрирование

Читайте дальше