LiteBans vs AdvancedBan: какой плагин модерации выбрать (2026)

LiteBans vs AdvancedBan: какой плагин модерации выбрать (2026)

Если на сервере больше двадцати онлайн и есть открытая регистрация, без отдельного плагина наказаний жить нельзя. Ванильный /ban Bukkit умеет одно: записать ник в banned-players.json и пнуть с заглушкой. Ни истории, ни причины, ни IP, ни синхронизации между прокси и backend, ни web-интерфейса для модераторов. На SMP с десятью игроками сойдёт. На сетке с прокси и десятью бэкендами это уже катастрофа.

Два плагина решают эту задачу для Spigot/Paper экосистемы: LiteBans (платный, ~15 USD на BuiltByBit, проприетарный) и AdvancedBan (бесплатный, MIT, открытый). Оба активно поддерживаются, оба умеют per-network бан через MySQL, оба покрывают /ban, /tempban, /mute, /warn, /kick. Разница в фичах, web-UI, API и в том, сколько вы готовы потратить времени и денег. Разбираем по полкам.

Зачем вообще выделенный плагин модерации

Стандартная команда /ban в Bukkit делает три вещи: добавляет ник в banned-players.json, кикает игрока, лог пишет в консоль. Этого мало даже для одиночного сервера. Нужны:

  • История наказаний на каждого игрока. Кто бил, когда, за что, сколько было прошлых санкций.
  • Причина и срок в kick-сообщении. Игрок должен видеть Banned for: x-ray client / 30 days / appeal: example.com.
  • Постоянное хранилище в БД, а не в JSON. JSON ломается при крашах, не масштабируется и не синхронизируется между серверами.
  • Per-network бан. Если в сети есть лобби, выживание и мини-игры через Velocity/BungeeCord, бан на одном сервере должен распространяться на все.
  • Mute, warn, kick как отдельные сущности с историей.
  • Подсветка по IP и UUID. Альты ловятся по IP-связке.
  • Web-интерфейс для модераторов, у которых нет SSH к серверу.
  • API для интеграции с Discord ботом, anticheat-ом, custom плагинами.

LiteBans и AdvancedBan закрывают всё это, но по-разному. Идём по порядку.

LiteBans: премиум стандарт с full-featured web UI

LiteBans продаётся на BuiltByBit (старая SpigotMC marketplace) за ~15 USD. Проект ведётся одним разработчиком, текущая major-ветка 2.x. Поддерживает Bukkit/Spigot/Paper 1.8.x..1.21.x, BungeeCord, Velocity, Sponge. Под капотом MySQL/MariaDB, поддержка PostgreSQL, fallback на H2 для одиночного сервера (но это нерекомендуемый сценарий).

Главная фича LiteBans, за которую платят, это PHP web-интерфейс. Не "API endpoint", а готовая страница с таблицей наказаний, фильтрами, поиском по нику/UUID/IP, разделами ban/mute/warn/kick/история. Дизайн настраивается через CSS, есть темы, есть админ-логин с правами. Установка: распаковать в /var/www/, прописать в litebans.yml connection-данные MySQL, и фронт сам видит таблицы. Никаких отдельных миграций.

Команды покрывают весь стандартный набор:

/ban <player> [time] <reason>
/tempban <player> <time> <reason>
/ipban <player|ip> [time] <reason>
/mute <player> [time] <reason>
/tempmute <player> <time> <reason>
/warn <player> <reason>
/kick <player> <reason>
/unban <player>
/unmute <player>
/unwarn <id>
/banlist [type]
/history <player>
/staffhistory <staff>
/check <player>  # текущие активные санкции
/dupeip <player>  # альты по IP

LiteBans поддерживает layouts для kick-screen. Это шаблоны сообщения с placeholder-ами {reason}, {duration}, {banned-by-name}, {appeal-link}. Можно задать разные layout-ы для разных типов наказаний и разных сроков. Перманент-бан выглядит иначе, чем 7-дневный, и иначе, чем mute.

Per-network bans работают через общий MySQL. Ставите тот же database блок на всех бэкендах и на прокси, LiteBans пишет в одну таблицу litebans_bans, проверка идёт на каждом login. На прокси (BungeeCord/Velocity) есть отдельный JAR, который ловит игрока ещё до пробрасывания на бэкенд, что чуть быстрее, чем ловить на самом бэкенде.

API LiteBans экспонирует Bukkit-events: LiteBansBanEvent, LiteBansMuteEvent, LiteBansWarnEvent, LiteBansKickEvent, LiteBansUnbanEvent. Можно подписаться из своего плагина и, например, отправлять каждый бан в Discord webhook или дёргать API anticheat для cross-reference.

@EventHandler
public void onBan(LiteBansBanEvent event) {
    String target = event.getTargetName();
    String reason = event.getReason();
    String executor = event.getExecutorName();
    long duration = event.getDuration();
    // отправляем в Discord webhook
    discordBridge.sendBanLog(target, reason, executor, duration);
}

Минусы LiteBans:

  • Платный. Для маленького SMP на пять человек это перебор.
  • Закрытый код. Если автор пропадёт, форка не будет.
  • MySQL обязателен по факту. H2 fallback есть, но никто им не пользуется.
  • Web-UI требует отдельного хостинга PHP. Если у вас Pterodactyl и нет своего веб-сервера, придётся поднимать Nginx + PHP-FPM сбоку.

AdvancedBan: бесплатный воркхорс

AdvancedBan живёт на GitHub у DevLeoko под лицензией MIT. Распространяется через Hangar (PaperMC), Modrinth и SpigotMC бесплатно. Поддерживает Bukkit/Spigot/Paper 1.8..1.21+, частично BungeeCord (через addon). По размеру JAR в три-четыре раза меньше, чем LiteBans, в зависимостях ничего лишнего.

Хранилище из коробки: SQLite или MySQL. SQLite живёт в plugins/AdvancedBan/data.db, для одиночного сервера до 100 онлайн этого хватает. MySQL включается заменой блока в config.yml:

MySQL:
  use-MySQL: true
  ip: 127.0.0.1
  port: 3306
  db-name: advancedban
  username: ab_user
  password: changeme

Команды почти один-в-один с LiteBans:

/ban <player> <reason>
/tempban <player> <time> <reason>
/ipban <player> <reason>
/mute <player> <reason>
/tempmute <player> <time> <reason>
/warn <player> <reason>
/tempwarn <player> <time> <reason>
/kick <player> <reason>
/unban <player>
/unmute <player>
/punish <player>  # GUI выбор санкции
/history <player>
/check <player>
/banlist

Парсер времени принимает суффиксы s, m, h, d, w, mo, y (/tempban Notch 7d griefing).

Layouts тоже есть, формат проще, чем у LiteBans:

Ban:
  - "&8&m=================================="
  - "&cYou are banned from this server"
  - ""
  - "&7Reason: &f{reason}"
  - "&7By: &f{operator}"
  - "&7Until: &f{duration}"
  - ""
  - "&7Appeal: &fdiscord.gg/example"
  - "&8&m=================================="

Per-network bans через MySQL: ставите тот же блок на всех бэкендах, AdvancedBan пишет в одну схему. Для BungeeCord идёт addon-плагин, который ловит игрока на прокси.

Web-интерфейс у AdvancedBan проще и официально не входит в основной репозиторий. Есть community-форки (AdvancedBanWeb, AdvancedBan-Frontend), которые читают MySQL и выводят таблицы наказаний. Дизайн скромнее, фильтров меньше, без admin-login и тем. Если нужен fancy UI с фильтрами и поиском по UUID/IP, придётся писать самому или мигрировать на LiteBans.

API AdvancedBan тоже даёт events:

@EventHandler
public void onPunish(PunishmentEvent event) {
    Punishment p = event.getPunishment();
    if (p.getType() == PunishmentType.BAN) {
        // отправляем в Discord
    }
}

Плюс прямой доступ к репозиторию пунишментов: PunishmentManager.get().getActivePunishments(uuid) возвращает список активных санкций.

Минусы AdvancedBan:

  • Web-UI только community и проще, чем у LiteBans.
  • Меньше фич в layouts (нет product-grade сегментации по сроку).
  • Темплейты и переводы рассыпаны по нескольким yml, чуть менее аккуратно.
  • Скорость разработки ниже: новые мажоры выходят раз в несколько месяцев.

Установка обоих плагинов

LiteBans:

1. Купить на builtbybit.com, скачать LiteBans.jar
2. Положить в plugins/, перезапустить сервер
3. Открыть plugins/LiteBans/config.yml и settings.yml
4. Прописать MySQL креды в settings.yml -> sql:
5. Перезапустить, плагин создаст таблицы litebans_*
6. Web-UI: распаковать php-фронт в /var/www/litebans/
7. Прописать там же MySQL креды в config.php

AdvancedBan:

1. Скачать AdvancedBan.jar с hangar.papermc.io или github releases
2. Положить в plugins/, перезапустить
3. Открыть plugins/AdvancedBan/config.yml
4. Сменить use-MySQL: true и заполнить блок MySQL
5. Перезапустить, плагин создаст таблицу punishments
6. Опционально: скачать BungeeCord addon из releases

Для прокси-сети (Velocity):

1. На каждом backend стоит основной JAR с одинаковым MySQL блоком.
2. На Velocity стоит соответствующий proxy-jar (LiteBans-Velocity, AdvancedBanVelocityFix или branch-аналог).
3. Логин-listener на прокси проверяет MySQL до того, как игрок попадает на backend.
4. Каждый бэкенд проверяет ещё раз на login event как fallback.

Команды и flow модерации

Допустим, игрок Hacker_77 использует x-ray. Стандартный flow:

[Moderator] /check Hacker_77
[LiteBans/AB] Active: 1 warn (caps abuse, 2026-04-12)
              History: 3 entries

[Moderator] /tempban Hacker_77 30d x-ray client (proof: clip url)
[Plugin] Hacker_77 banned for 30d. Reason: x-ray client
[Plugin] Discord webhook fired (через свой listener)

[Hacker_77 reconnects]
[Plugin] Kick screen with layout, reason, duration, appeal link

Если стало понятно, что бан нужен permanent:

/unban Hacker_77
/ban Hacker_77 x-ray client + bypass attempts (perm)

Для глушения чата:

/tempmute spammer 1h spam
/tempmute toxic_kid 1d slurs (proof: log url)

Warns копятся, по достижении threshold можно автоматически конвертить в бан через AdvancedBan WarnActions или LiteBans triggers (см. ниже).

Per-network bans на Velocity/BungeeCord

Оба плагина это умеют, разница в реализации. LiteBans распространяет один MySQL слой на прокси и backend. Когда игрок коннектится к Velocity, плагин-сторона LiteBans на Velocity проверяет таблицу litebans_bans, и если есть активный бан, кикает с layout. Если бан был добавлен пока игрок онлайн, прокси видит INSERT и инициирует kick.

AdvancedBan: основная логика на backend. Velocity/BungeeCord addon ловит логин и делает запрос в MySQL. Чуть менее центральная схема, но рабочая.

Подводный камень: schema нужно держать синхронной между всеми экземплярами. Если у вас два бэкенда с разной major-версией LiteBans, один из них может попытаться мигрировать схему "под себя", сломав остальные. Поэтому: единая версия плагина, единый процесс обновлений.

Web-интерфейсы: где LiteBans вырывается вперёд

LiteBans Web-UI:

  • Готовая PHP-страница из коробки (входит в покупку).
  • Темы: light, dark, кастомные через CSS.
  • Фильтры: по типу (ban/mute/warn/kick), по сроку (active/expired/permanent), по нику/UUID/IP.
  • Pagination, sortable columns.
  • История на игрока в один клик.
  • Опционально: admin-login с авторизацией, чтобы публично был только banlist, а полная история только модерам.

AdvancedBan Web-UI:

  • Официально нет. Несколько community-проектов: AdvancedBanWeb (PHP), advancedban-frontend (Node/React).
  • Минимальный функционал: список банов, поиск по нику.
  • Без auth-уровней, без расширенных фильтров.
  • Если хочется такой же UX как у LiteBans, проще написать свой бэкенд или мигрировать.

Для публичного сервера с upset игроками, которые регулярно подают аппелы, web-UI это разница между "удобно" и "невозможно". Модератор без SSH, апеллирующий игрок, который хочет посмотреть свой статус, и owner, который хочет внешний аудит, все они работают через web. Поэтому если бюджет позволяет, LiteBans решает эту задачу за вас.

Plugin API: интеграция со своими сервисами

Допустим, нужно отправлять каждый бан в Discord и в собственный anticheat для cross-check.

LiteBans:

public class BanLogger implements Listener {
    @EventHandler
    public void onBan(LiteBansBanEvent e) {
        String target = e.getTargetName();
        String reason = e.getReason();
        long duration = e.getDuration();
        DiscordWebhook.send(String.format(
            "BAN | %s | %s | %s",
            target, reason, formatDuration(duration)
        ));
    }
}

AdvancedBan:

public class BanLogger implements Listener {
    @EventHandler
    public void onPunish(PunishmentEvent e) {
        Punishment p = e.getPunishment();
        if (p.getType() != PunishmentType.BAN
            && p.getType() != PunishmentType.TEMP_BAN) return;
        DiscordWebhook.send(String.format(
            "BAN | %s | %s | by %s",
            p.getName(), p.getReason(), p.getOperator()
        ));
    }
}

Оба варианта рабочие. LiteBans даёт чуть больше контроля (отдельные events на каждый тип), AdvancedBan один общий event с фильтром по типу.

Прямой запрос в БД через свою таблицу тоже допустим, но нежелателен: при апдейтах схемы вы сломаетесь. Используйте API.

Миграция данных между плагинами

Сценарий: вы стартовали на AdvancedBan, выросли, хотите LiteBans с web-UI. Переносить историю.

Прямого importer-а из AdvancedBan в LiteBans нет. Способы:

  1. Свой SQL-скрипт. Структура AdvancedBan: одна таблица punishments с колонками name, uuid, reason, operator, punishmentType, start, end, calculation. Структура LiteBans: отдельные таблицы litebans_bans, litebans_mutes, litebans_warnings, litebans_kicks, litebans_history. Маппинг прямой: тип punishment → таблица, время в milliseconds приводите к нужному формату.
-- импорт банов из AdvancedBan в LiteBans (упрощённо)
INSERT INTO litebans_bans (uuid, ip, reason, banned_by_uuid, banned_by_name, time, until, server_scope, server_origin, active)
SELECT
    uuid,
    NULL,
    reason,
    NULL,
    operator,
    start,
    CASE WHEN end = -1 THEN -1 ELSE end END,
    '*',
    'global',
    1
FROM advancedban.punishments
WHERE punishmentType IN ('BAN', 'TEMP_BAN');
  1. Сохранить AdvancedBan в read-only режиме параллельно. Запустить LiteBans на новой БД, оставить AdvancedBan только для просмотра старой истории. Не идеально, но проще.

  2. Готовый сторонний importer. На GitHub под запрос litebans importer advancedban есть community-проекты разной свежести. Бэкап БД сделать обязательно перед запуском.

Обратная миграция (LiteBans → AdvancedBan) встречается реже, но тоже сводится к SQL-скрипту: схлопнуть отдельные таблицы LiteBans в общую punishments AdvancedBan, тип проставить из контекста таблицы.

Производительность под нагрузкой

На 200+ онлайн оба плагина чувствуют себя нормально. Ключевые оптимизации:

  • Connection pooling. LiteBans использует HikariCP, AdvancedBan тоже на HikariCP в новых версиях. Размер пула не трогайте без причины: 10 коннектов к MySQL хватает.
  • Async везде. Оба плагина пишут в БД асинхронно. Главный поток только проверяет cache на login.
  • Login query должен быть быстрым. Индекс на uuid обязательно (оба плагина создают). Если у вас сотни тысяч записей, проверьте EXPLAIN SELECT * FROM litebans_bans WHERE uuid = '...' AND active = 1. Должен быть ref по UUID-индексу.
  • MySQL рядом. Поднимайте MySQL на той же машине, что и Minecraft, или на ней же / на соседнем хосте с приватной сетью. Latency 1-2ms нормально, 20+ ms на login, это уже видно как лаг.

LiteBans чуть тяжелее по памяти из-за расширенного caching. На 100 MB JAR не смотрите, JVM-overhead меньше 30 MB. AdvancedBan в районе 15-20 MB.

Tick lag не вносит ни тот, ни другой, при условии что MySQL не висит. Если MySQL отвечает медленно, async-запись не блокирует main thread, но fallback queue растёт. На 1000+ событий в минуту это нужно мониторить.

Цена и лицензия

ПараметрLiteBansAdvancedBan
Лицензияпроприетарная, платнаяMIT, бесплатная
Цена~15 USD на BuiltByBit0
Поддержкаавтор активно отвечаетcommunity + автор
Web UIв комплектеcommunity-форки
Open sourceнетда

Если бюджет ноль, выбор очевиден. Если есть 15 USD одноразово, LiteBans экономит часы на конфигурации web и layouts.

Когда какой выбирать

Выбирайте LiteBans если:

  • Большой публичный сервер 100+ онлайн.
  • Несколько модераторов без SSH-доступа, нужен web-UI.
  • Сетевая структура с прокси, бэкендами, lobby, нужна максимально надёжная синхронизация.
  • Игроки регулярно подают аппелы, нужен публичный banlist.
  • Бюджет позволяет 15 USD одноразово.
  • Вы хотите готовый продукт без часов на community-фронт.

Выбирайте AdvancedBan если:

  • SMP до 50 онлайн или whitelisted private.
  • Нет бюджета на платные плагины.
  • Open-source принципиально (форк, аудит, custom-fork).
  • Web-UI не нужен или вы готовы поднять собственный.
  • Простая структура, без сложного network-routing.
  • Нужно быстро поставить и забыть.

Оба плагина решают базовую задачу. Разница в полировке и в готовом UI.

Чеклист перед продакшеном

  • Backup MySQL настроен (mysqldump в cron, минимум раз в день).
  • Layouts ban/mute/warn/kick написаны с appeal-ссылкой.
  • Permissions на команды разданы по ролям (modkick, modban, admin).
  • /staff-history или эквивалент включён, чтобы видеть кто что выдал.
  • Discord webhook на каждое наказание (через API).
  • Test-flow: ban → reconnect → kick screen с правильным layout-ом.
  • Per-network: бан на одном сервере применяется на всех.
  • Web-UI (если LiteBans) защищён auth, не доступен публично без фильтра.
  • DDoS защита (например, MineGuard) поверх, потому что 9 из 10 атак идут после первого permanent ban.

FAQ

Можно ли поставить оба плагина одновременно?

Технически, да, конфликта команд может не быть, если переименовать одни. Практически, никогда не делайте этого. Две истории, две БД, два лога, два набора layouts, два места для модерации. Choose one.

Поддерживают ли оба Velocity 3.x?

LiteBans, да, есть отдельный velocity-jar. AdvancedBan, частично, через community fork AdvancedBanVelocityFix или последние релизы основного jar. Тестируйте на dev-стенде перед продом.

LiteBans без web-UI, есть смысл?

В принципе да, основной плагин работает и без web. Но 80% ценности LiteBans это web-UI. Если он не нужен, AdvancedBan сэкономит вам 15 USD без потери функциональности.

Что лучше: SQLite или MySQL для AdvancedBan?

Для одиночного сервера до 50 онлайн без прокси, SQLite ок. Для всего остального, MySQL. SQLite не подойдёт даже теоретически для multi-server, потому что одна БД-файл доступна одновременно только одному процессу.

Где хранятся IP игроков?

Оба плагина хранят последний IP при login. LiteBans пишет в litebans_history, AdvancedBan кэширует в памяти и при /ipban использует. Учитывайте GDPR: для серверов с EU-аудиторией публиковать IP в web-UI нельзя без хеширования.

Можно ли мигрировать историю BungeeCord-плагина MaxBans на LiteBans или AdvancedBan?

Да, но только через свой SQL-скрипт. Готовых импорт-скриптов из MaxBans в LiteBans я не встречал, схемы разные. Берите бэкап старой БД, маппьте поля руками.

Хороший плагин модерации, это не только команды и таблицы. Это страховка для долгих ночных рейдов модеров, аудит-trail для apella, и API для автоматизации. И LiteBans, и AdvancedBan делают это нормально. Выбор сводится к одному вопросу: 15 USD за готовый web-UI или часы своего времени на community-фронт. Если ваш сервер живёт коммерчески, ответ очевиден. Если это домашний SMP, наоборот.


Proteja Seu Servidor de Ataques DDoS

Proteção gratuita com configuração em 5 minutos. 1 TB de tráfego incluso.

Experimentar Grátis


Artigos Relacionados