Плагин для серверов Майнкрафт на Paper, который защищает выдачу прав оператора и опасные команды от злоупотреблений. Он требует пароль для /op и /deop, отслеживает подозрительные попытки и помогает автоматически ограничивать нарушителей.
Возможности
- Защищает
/opи/deopпаролем; пароль хранится в виде хеша, а не открытым текстом. - После успешной проверки создаёт временную сессию, поэтому пароль не нужно вводить при каждой команде. При выходе игрока с сервера сессия сбрасывается.
- Позволяет ограничить выдачу OP списком разрешённых игроков.
- Блокирует указанные опасные команды для обычных игроков, а при необходимости — и для операторов. Обрабатывает алиасы и вызовы через пространства имён, например
minecraft:op. - При неверном пароле вводит временную блокировку. Длительность может увеличиваться после повторных попыток, а состояние сохраняется после перезапуска сервера.
- Поддерживает скрытый режим: вместо сообщения о запрете игрок видит поддельный успешный ответ. После заданного числа таких попыток можно включить настоящее наказание.
- Для автоматического наказания доступны кик, бан, бан по IP, собственная команда с
{player}и{ip}, а также запуск скрипта файрвола. - Ведёт журнал изменений прав, ошибок авторизации, заблокированных команд и наказаний. Журнал можно хранить в обычном текстовом или JSON-формате, ограничивать его размер и число резервных файлов.
- Есть русский язык интерфейса: выберите
language: "ru"вconfig.yml.
Команды
/op <player> [password]— выдать OP после проверки пароля./deop <player> [password]— снять OP после проверки пароля./opshield reload— перезагрузить конфигурацию./opshield unlock <player|ip>— снять блокировку с игрока или IP-адреса./opshield status— показать активные сессии, очередь авторизации и другие рабочие данные.
Права
opshield.*— все права плагина.opshield.admin— все дочерние права администратора.opshield.reload— доступ к/opshield reload.opshield.unlock— доступ к снятию блокировок.opshield.status— просмотр состояния плагина.opshield.op— использование защищённой команды/op.opshield.deop— использование защищённой команды/deop.opshield.bypass— обход блокировки опасных команд для обычных игроков.
Например, право администратора для группы LuckPerms выдаётся командой:
/lp group admin permission set opshield.admin true
Настройка
Основной файл — plugins/OPShield/config.yml; постоянные данные о блокировках и скрытых нарушениях хранятся в plugins/OPShield/data.yml. Языковые файлы находятся в plugins/OPShield/languages/.
В конфиге можно настроить лимит неудачных попыток и их время (security.lockout.max-attempts, security.lockout.duration-minutes), учёт IP (security.lockout.track_ip), время сессии (security.session_timeout_minutes) и число итераций хеширования (security.password.pbkdf2_iterations).
Автонаказание задаётся в разделе auto_punishment: включение — auto_punishment.enabled, порог срабатывания — auto_punishment.threshold, способ наказания — auto_punishment.command. Для скрытого режима используются shadow_ban.enabled и shadow_ban.auto_punish_level.
Параметры журнала находятся в разделе audit: audit.format выбирает plain или json, audit.max_file_size_mb ограничивает размер файла, а audit.log_retention — число резервных копий. После изменения настроек используйте /opshield reload.
Если пароль утерян, удалите значение op_password_hash из config.yml и перезапустите сервер: новый пароль будет выведен в консоль. Для постоянного запроса пароля установите security.session_timeout_minutes: 0.
Требования
Плагину нужны сервер Paper и Java. Folia не поддерживается. Для выдачи прав потребуется плагин управления правами, например LuckPerms.
