Files
AdminMode/LUCKPERMS_SETUP.md
2026-08-02 22:21:03 +03:00

235 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Настройка LuckPerms для AdminMode
Эта инструкция рассчитана на LuckPerms 5.5.x и стандартный `config.yml`, который поставляется с AdminMode.
## Как AdminMode использует LuckPerms
LuckPerms является обязательной зависимостью: без него Paper не загрузит AdminMode.
Плагин использует две разновидности групп:
- `moder` — постоянная группа обычного модератора. Она разрешает включать AdminMode.
- `admin_moder` — временная группа. AdminMode сам добавляет её при входе в режим и удаляет при выходе.
- `chief_moder` — рекомендуемая постоянная группа главного модератора. Главный модератор определяется правом `adminmode.chief`, а не названием группы.
Не назначайте `admin_moder` игрокам вручную как постоянную группу. Также не добавляйте постоянные группы в `admin_mode.luckperms.groups`: все перечисленные там группы плагин удаляет у игрока при выходе из AdminMode.
Проверяйте настройку на игроке без OP. Права `adminmode.use`, `adminmode.admin`, `adminmode.chief` и `adminmode.reload` имеют значение `default: op`, поэтому оператор сервера получит их даже без настроенного LuckPerms.
Права самого AdminMode:
- `adminmode.use` — вход в режим и открытие панели.
- `adminmode.admin` — сильные действия, принудительное отключение режима и `/admfix`.
- `adminmode.chief` — управление доступом других модераторов и Creative в режиме, если он разрешён конфигом.
- `adminmode.reload` — перезагрузка конфига AdminMode.
- `adminmode.special.belzebool` — специальная способность, которая дополнительно привязана в коде к нику `BelzeBool`; обычным группам её выдавать не нужно.
## 1. Установка LuckPerms
1. Скачайте Bukkit-версию LuckPerms 5.5.x.
2. Поместите JAR в папку `plugins/` рядом с AdminMode.
3. Полностью перезапустите сервер.
4. Проверьте из консоли:
```text
lp info
```
Команды ниже можно выполнять в консоли без `/` или в игре от имени OP с `/`.
Если удобнее работать через браузер, команда `lp editor` открывает официальный веб-редактор LuckPerms. После сохранения изменений редактор выдаст команду, которую нужно выполнить на сервере для применения данных. Команды из следующих разделов дают тот же результат без веб-редактора.
## 2. Создание групп
Выполните:
```text
lp creategroup moder
lp creategroup admin_moder
lp creategroup chief_moder
```
Если LuckPerms сообщает, что группа уже существует, это не ошибка — переходите дальше.
## 3. Права обычного модератора
Выдайте постоянной группе `moder` право входить в режим:
```text
lp group moder permission set adminmode.use true
```
Обычный модератор сможет использовать `/adminmode`, `/adm` и `/am`, но не сможет ограничивать других модераторов или выполнять административные команды повышенного риска.
## 4. Права, доступные только внутри AdminMode
Группа `admin_moder` автоматически появляется у игрока после включения режима. Рекомендуемый минимальный набор:
```text
lp group admin_moder permission set adminmode.admin true
```
`adminmode.admin` разрешает сильные действия AdminMode, включая принудительное отключение режима другого игрока и `/admfix`.
Если сильные действия обычным модераторам не нужны, не выдавайте этот узел. Вход и выход из режима продолжат работать по `adminmode.use`.
Права на кнопки наказаний выдаются отдельно. Пример полного набора для временной группы:
```text
lp group admin_moder permission set adminmode.punishment.warn true
lp group admin_moder permission set adminmode.punishment.unwarn true
lp group admin_moder permission set adminmode.punishment.mute true
lp group admin_moder permission set adminmode.punishment.unmute true
lp group admin_moder permission set adminmode.punishment.kick true
lp group admin_moder permission set adminmode.punishment.ban true
lp group admin_moder permission set adminmode.punishment.unban true
```
Выдавайте только нужные узлы. `adminmode.punishment.ban` и `adminmode.punishment.unban` позволяют менять доступ игроков к серверу и рекомендуются только доверенным ролям. AdminMode проверяет эти права сам, в том числе когда внешняя команда выполняется от консоли.
### CoreProtect
Если установлен CoreProtect и модераторы должны пользоваться его инструментами из панели AdminMode, добавьте необходимые права в временную группу:
```text
lp group admin_moder permission set coreprotect.inspect true
lp group admin_moder permission set coreprotect.lookup true
```
Rollback и restore меняют мир, поэтому выдавайте их только доверенным сотрудникам:
```text
lp group admin_moder permission set coreprotect.rollback true
lp group admin_moder permission set coreprotect.restore true
```
Не используйте `coreprotect.*`, если модератору не нужен полный доступ к CoreProtect.
### InvSee и команды наказаний
AdminMode вызывает команду `invsee` от имени модератора, поэтому право на неё зависит от установленного у вас плагина инвентарей. Добавьте соответствующий permission этого плагина в `admin_moder`.
По умолчанию команды warn, mute, ban и kick выполняются от консоли:
```yaml
moderation_actions:
dispatch_as_console: true
```
При такой настройке отдельные права на команды наказаний модератору не нужны. Если установить `dispatch_as_console: false`, эти команды начнут выполняться от имени игрока, и их permissions также потребуется выдать группе `admin_moder`.
Чтобы узнать неизвестное право конкретной команды, используйте LuckPerms verbose:
```text
lp verbose command <ник_модератора> "invsee <ник_цели>"
```
## 5. Главный модератор
Пусть `chief_moder` наследует обычную группу и получает специальные права:
```text
lp group chief_moder parent add moder
lp group chief_moder permission set adminmode.chief true
lp group chief_moder permission set adminmode.reload true
```
- `adminmode.chief` разрешает ограничивать и восстанавливать доступ других модераторов, смотреть статус ограничений и использовать Creative внутри AdminMode, если это разрешено конфигом.
- `adminmode.reload` разрешает `/adminmode reload`.
Не добавляйте `admin_moder` как родителя `chief_moder`, иначе временные права будут действовать у главного модератора постоянно.
## 6. Назначение игроков
Обычный модератор:
```text
lp user <ник> parent add moder
```
Главный модератор:
```text
lp user <ник> parent add chief_moder
```
Используется `parent add`, а не `parent set`, чтобы случайно не удалить другие существующие группы игрока.
Примеры:
```text
lp user Steve parent add moder
lp user Alex parent add chief_moder
```
## 7. Конфигурация AdminMode
Проверьте файл `plugins/AdminMode/config.yml`:
```yaml
admin_mode:
luckperms:
enabled: true
groups:
- "admin_moder"
remove_on_disable: true
groups:
base: "moder"
admin: "admin_moder"
chief: "chief_moder"
```
Рекомендации:
- Оставьте `enabled: true`.
- Оставьте `remove_on_disable: true`, чтобы временные группы снимались при выходе игрока из режима.
- Значение `groups.admin` должно совпадать с основной временной группой.
- В `admin_mode.luckperms.groups` перечисляйте только группы, которые должны выдаваться временно.
- `groups.base` не назначает игроку группу автоматически.
- Название `groups.chief` само по себе не даёт полномочий: обязательно право `adminmode.chief`.
После изменения конфига выполните:
```text
adminmode reload
```
или перезапустите сервер.
## 8. Проверка настройки
Проверьте постоянную группу и право игрока:
```text
lp user <ник> info
lp user <ник> permission check adminmode.use
```
Затем зайдите на сервер этим игроком:
1. Выполните `/adminmode on`.
2. Проверьте группы командой `lp user <ник> parent info` — должна появиться `admin_moder`.
3. Выполните `/adminmode off`.
4. Снова проверьте группы — `admin_moder` должна исчезнуть, а `moder` или `chief_moder` остаться.
## 9. Если временная группа не снялась
Удалите её вручную:
```text
lp user <ник> parent remove admin_moder
```
После аварийной остановки сервера AdminMode сохраняет активную сессию и продолжает её после следующего входа игрока. Обычно достаточно войти на сервер и корректно выполнить `/adminmode off`.
Если команда недоступна, проверьте:
```text
lp user <ник> permission check adminmode.use
lp user <ник> permission check adminmode.admin
lp user <ник> permission check adminmode.chief
```
Официальная документация: [LuckPerms Usage](https://luckperms.net/wiki/Usage), [Command Usage](https://luckperms.net/wiki/Command-Usage), [Verbose](https://luckperms.net/wiki/Verbose).