LiteBans: баны, муты и варны на сервере и в сети

LiteBans ведёт баны, муты, предупреждения и кики с полной историей и синхронизирует их между серверами через общую базу данных. Плагин платный, работает на Spigot, Paper, Folia, Fabric, BungeeCord и Velocity.

Установка и база данных

На одном сервере LiteBans работает сразу: по умолчанию используется H2, база хранится файлами в папке плагина. Для сети серверов нужна общая MySQL или MariaDB: все экземпляры, подключённые к одной базе, применяют наказания везде. Поддерживается и PostgreSQL.

  1. Положите jar в plugins (на Fabric в mods).
  2. Запустите сервер, конфиги появятся в plugins/LiteBans/ (Fabric: config/litebans/, Velocity: plugins/litebans/).
  3. Для сети впишите базу в config.yml на каждом сервере.
  4. Выполните /litebans reload или перезапустите сервер.
  5. Проверьте подключение: /litebans info и /litebans servers.
sql:
  driver: mysql
  address: localhost:3306
  database: 'litebans'
  username: 'user'
  password: 'pass'
  table_prefix: 'litebans_'

server_name задаёт имя экземпляра для синхронизации и области наказаний, лучше строчными буквами. Ставить плагин на прокси вместо каждого сервера документация советует только в больших сетях от 30 серверов или при отсутствии MySQL.

Команды ban, tempban, mute, warn и флаги

Общий синтаксис: /ban <user> [flags] [duration] [server:*] [template] [reason]. Всё в квадратных скобках необязательно. Вместо ника можно указать UUID, IP или маску IP.

/ban Steve -s 10d server:survival Читы
/tempban Steve 7d Гриферство
/mute Steve 30m Флуд
/tempmute Steve 1h Капс
/warn Steve Оскорбления
/ban Steve duration:permanent Читы

Длительность: s, m, h, d, w, mo, y. Можно дробно (1.5h) и с пробелом (5 days). Бессрочно: duration:permanent.

  • -s: тихое наказание, без объявления в чат. Его видят только игроки с litebans.notify.silent.
  • -S: совсем тихо, объявление видит только консоль.
  • -p: публичное наказание, если в конфиге включено silent: true.
  • -I: наказание по аккаунту и IP.
  • -g: на всю сеть, то же что server:global.
  • -m: изменить действующее наказание (новые срок и причина) без создания нового.
  • -d: удалить запись по ID или нику.
  • -N: не перезаписывать уже действующее наказание более коротким.

Права модераторов

  • litebans.ban и litebans.mute разрешают и вечные, и временные наказания. litebans.tempban и litebans.tempmute только временные: удобно для младших модераторов.
  • litebans.warn, litebans.kick, litebans.ipban.
  • Снятие: litebans.unban.own снимает только свои баны. Чтобы снимать чужие, нужны оба права, litebans.unban и litebans.unban.own. Так же устроены unmute и unwarn.
  • litebans.exempt защищает от наказаний, litebans.exempt.bypass позволяет наказывать защищённых. Документация советует включить use_group_weights, чтобы младшие группы не могли наказывать старших. На Spigot для проверки прав офлайн-игроков нужен Vault.
  • litebans.admin открывает /litebans reload и другие служебные команды, но не выдаёт остальные права. Для всего сразу есть litebans.*.
  • Если плагин стоит на прокси, выдайте группе default litebans.notify.broadcast, иначе игроки не увидят объявления о банах.

Предупреждения и автоматические наказания

Варны по умолчанию истекают через 7 дней (warnings.expire_after, значение permanent делает их вечными). В warnings.actions задаётся, что происходит после N активных предупреждений. Пример из конфига:

warnings:
  expire_after: 7 days
  actions:
  - '3:/kick -s:$silent $player Final warning: $reason'
  - '4:/tempban -s:$silent $player 1 day Reached 4 warnings: $list'

Число перед двоеточием это порог, + после него срабатывает на этом числе варнов и выше. -s:$silent переносит тихий режим с предупреждения на наказание. Посмотреть свои варны игрок может командой /warnings.

Веб-интерфейс: litebans-php и LitebansU

Веб-страница со списком банов читает ту же базу, что и плагин, поэтому нужна MySQL или MariaDB. С H2 веб-интерфейс не подключить.

Официальный litebans-php. Нужны PHP 5.3+ с модулями intl и pdo_mysql, рекомендуется PHP 8.1+ и MariaDB. Распакуйте архив в корень сайта, переименуйте папку в bans, откройте example.com/bans/index.php и следуйте подсказкам. Есть русский перевод от сообщества. Инструкция: gitlab.com/ruany/litebans-php.

LitebansU это сторонний проект под лицензией MIT, не от автора LiteBans: публичные списки с поиском и статистикой, тёмная тема, админ-панель. Требования: PHP 8.0+, MySQL 5.7+ или MariaDB 10.3+, LiteBans 2.8.0+.

  1. Распакуйте релиз в папку сайта и дайте веб-серверу запись в data/, demos/data/ и logs/.
  2. Откройте install.php либо скопируйте .env_example_clean в .env и заполните DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASS, TABLE_PREFIX=litebans_.
  3. После запуска удалите install.php и hash.php.

Репозиторий: github.com/Yamiru/LitebansU.

Перевод на русский

Сообщения плагина лежат в messages.yml. В репозитории LiteBans на GitLab есть messages_ru.yml, но он сгенерирован версией 2.11.3 и может отставать от текущей. Надёжнее переводить свой messages.yml, сверяясь с этим файлом, и применить /litebans reload. Файлы переводов: gitlab.com/ruany/LiteBans.

Команды и права LiteBans

КомандаЧто делаетПраво
/ban <user> [flags] [duration] [reason]бан, вечный или на срокlitebans.ban
/tempban <user> <duration> [reason]временный бан, срок обязателенlitebans.tempban
/ipban <user> [reason]бан по аккаунту и IP (алиасы /banip, /ban-ip)litebans.ipban
/mute <user> [duration] [reason]мут, вечный или на срокlitebans.mute
/tempmute <user> <duration> [reason]временный мутlitebans.tempmute
/warn <user> [reason]предупреждениеlitebans.warn
/kick <user> [reason]кик с сервераlitebans.kick
/unban <user>снять бан (чужой требует ещё litebans.unban)litebans.unban.own
/unmute <user>снять мутlitebans.unmute.own
/unwarn <user>снять предупреждениеlitebans.unwarn.own
/checkban <user>проверить активный банlitebans.checkban
/history <user> [type]история наказаний игрока (/hist)litebans.history
/staffhistory <user> [type]кого наказывал модератор (/staffhist)litebans.staffhistory
/warnings [user]активные предупрежденияlitebans.warnings.self
/banlist [page]список бановlitebans.banlist
/dupeip <user>твинки с того же IP (/alts)litebans.dupeip
/lockdown [reason]временно закрыть вход всем без litebans.lockdown.bypasslitebans.lockdown
/staffrollback <user> [duration]откатить наказания, выданные модератором (по умолчанию только из консоли)litebans.staffrollback
/litebans reloadперечитать конфиги и переподключиться к базеlitebans.admin
/litebans infoсостояние подключения к базеlitebans.admin

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

Можно ли скачать LiteBans бесплатно?
Нет, LiteBans платный, $8.50 на SpigotMC. Сборки с других сайтов не получают обновлений и могут содержать чужой код.
Как настроить LiteBans на MySQL?
В config.yml в секции sql смените driver на mysql или mariadb и укажите address, database, username и password. Для сети серверов впишите одну и ту же базу на всех серверах и выполните /litebans reload.
Как перевести LiteBans на русский?
Сообщения лежат в messages.yml. В репозитории плагина на GitLab есть messages_ru.yml, но он от версии 2.11.3, поэтому новые строки придётся перевести вручную.
Чем ban отличается от tempban в LiteBans?
/ban выдаёт бан бессрочно или на указанный срок и требует право litebans.ban. /tempban требует срок обязательно, а право litebans.tempban не позволяет банить навсегда.
Какие команды есть у LiteBans?
Основные: /ban, /tempban, /mute, /tempmute, /warn, /kick, /unban, /history, /checkban, /banlist и /dupeip. Флаги -s, -p, -g, -m и -d меняют режим наказания.
Работает ли LiteBans на 1.21 и 1.16.5?
Да, плагин поддерживает Spigot, Paper и Folia от 1.7.10 до 26.x, включая 1.16.5 и 1.21. Нужна Java 8 или новее.
Есть ли у LiteBans веб-интерфейс?
Да, официальный litebans-php на PHP и сторонний LitebansU. Оба читают базу MySQL или MariaDB, в которую пишет плагин.

Не хочется настраивать самому

LiteBans уже стоит и настроен в готовых сборках Cloud Delight: права, меню, защита и донат собраны в одно целое. Скачали, запустили, играете.