feat: pizdec

This commit is contained in:
2026-08-02 22:21:03 +03:00
parent ef128cc08d
commit de96bd314f
80 changed files with 4121 additions and 1431 deletions

234
LUCKPERMS_SETUP.md Normal file
View File

@@ -0,0 +1,234 @@
# Настройка 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).