
AntiAFK - The Performance AFK Solution
AntiAFK - серверный плагин для Bukkit, Paper, Purpur и Spigot, который выявляет AFK-ботов, макросы и повторяющиеся маршруты. Проверка вопросом, настраиваемые наказания и анализ поведения помогают контролировать простой игроков без лишней нагрузки.
AntiAFK - управление AFK на сервере Minecraft
AntiAFK - серверный плагин для Minecraft Java, который помогает отличить отошедшего игрока от бота, имитирующего активность. Обычный таймер AFK легко обойти повторяющимися движениями или кликами, поэтому плагин анализирует несколько типов поведения и при подозрении запускает проверку вопросом. Это полезно для серверов, где бездействующие аккаунты занимают слоты, фармят ресурсы или обходят правила AFK-зон.
Плагин работает на Bukkit, Paper, Purpur и Spigot, поддерживает Minecraft Java 1.13-1.21.x и не требует Fabric или Forge. Его можно настроить под разные правила: например, задать отдельное время AFK для арены, рынка и специальной комнаты бездействия.
Как AntiAFK распознаёт ботов
Проверка состоит из нескольких уровней. Сначала AntiAFK отслеживает обычные действия игрока: перемещение, сообщения в чате, работу с инвентарём и взаимодействие с миром. Затем оценивает, не повторяются ли действия на одних и тех же координатах без реального перемещения.
- Контроль активности: отслеживает более десяти базовых действий, чтобы определять, взаимодействует ли игрок с сервером.
- Анализ бессмысленных действий: повторные действия в пределах одного блока перестают сбрасывать AFK-таймер после достижения заданного порога.
- Выявление макросов и обходов: плагин ищет слишком ровные интервалы кликов, характерные для автокликера, и подозрительно быстрые перемещения через порталы или команды.
- Анализ маршрутов: Learning Mode сравнивает недавние траектории игрока с записанными шаблонами ботов.
Для сравнения движений используется алгоритм Dynamic Time Warping (DTW). Он сопоставляет последовательности действий, даже если они выполнялись с разной скоростью. Анализ идёт асинхронно, чтобы вычисления не занимали основной поток сервера.
Режим Learning Mode позволяет записывать и управлять шаблонами через /antiafk pattern. Они сохраняются в JSON для удобной проверки или в компактном бинарном формате Kryo. Если на сервере встречаются боты с повторяющимися маршрутами, эта функция помогает выявлять именно характерный рисунок движения, а не только неподвижность персонажа.
Проверка игрока и наказания
Если поведение выглядит подозрительно, AntiAFK может запустить проверку вопросом. Вопросы и варианты правильных ответов задаются в questions.yml; для одной проверки можно указать несколько допустимых ответов. Пока тест активен, движения и клики не сбрасывают AFK-таймер, поэтому простая имитация активности не помогает пройти проверку.
За провал можно назначить собственные команды, например исключение с сервера или бан. Наказания настраиваются по ступеням: при повторных нарушениях сервер может сначала выдать предупреждение, а затем применить более серьёзную меру. История хранится в SQLite и включает число наказаний, общее время AFK и статистику проверок. Записи игроков, которые долго не нарушали правила, можно автоматически сбрасывать через заданный срок.
Настройка и команды
Основные инструменты собраны под командой /antiafk:
/antiafk panel- открыть игровую панель управления./antiafk reload- перечитать файлы настроек./antiafk check <player>- посмотреть статус и историю игрока./antiafk top <time|punishments>- вывести рейтинг по времени AFK или наказаниям./antiafk list- показать игроков, отмеченных как AFK./antiafk pattern <record|list|manage>- записывать и настраивать шаблоны движений для Learning Mode.
Основные параметры находятся в config.yml, сообщения - в messages.yml, вопросы для проверки - в questions.yml. В конфигурации можно менять тексты, команды, объявления, наказания и правила обнаружения. Русская локализация поддерживается; также доступны турецкий, английский, испанский, немецкий, французский и польский языки. Язык сообщений консоли задаётся параметром lang в config.yml.
Интеграции
Все перечисленные интеграции необязательны:
- WorldGuard позволяет задавать отдельные интервалы AFK и наказания для конкретных регионов, например арены, рынка или AFK-комнаты.
- PlaceholderAPI предоставляет плейсхолдеры
%antiafk_tag%и%antiafk_reason%для использования в других плагинах. - ProtocolLib расширяет возможности интерфейса, в том числе ввод текста через GUI.
Производительность
Проверки траекторий и запросы к базе данных выполняются вне основного потока. Часто используемые данные плагин кэширует, а периодические задачи распределяет по 20 игровым тактам в течение секунды, чтобы снизить резкие скачки нагрузки при большом онлайне.
В приведённом замере на Paper 1.19.4 с одним игроком на AntiAFK приходилось около 0,24% времени серверного потока. Это результат конкретного теста, а не гарантия для любого онлайна и конфигурации: фактическая нагрузка зависит от сервера и включённых проверок.
Установка
Поместите файл плагина .jar в папку plugins и запустите сервер. При первом старте AntiAFK создаст config.yml, messages.yml, questions.yml и базу playerdata.db. После изменения настроек их можно перечитать командой /antiafk reload.
Сервер для плагина AntiAFK - The Performance AFK Solution - как у профи
Плагин AntiAFK - The Performance AFK Solution создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином AntiAFK - The Performance AFK Solution для друзей можно за пару минут - BungeeHost всё уже подготовил.
