- Поддерживаемые версии
- 1.21
- 26
- Ядра и Прокси
- Bukkit
- Spigot
- Paper
- Минимальная версия Java
- 25
hAntiRelog
Продвинутая система AntiRelog и управления режимом боя
Combat Tag • Multiple Opponents • Logout Punishment • Restrictions • Item Cooldowns • Displays • Statistics • API
Продвинутая система AntiRelog и управления режимом боя
Combat Tag • Multiple Opponents • Logout Punishment • Restrictions • Item Cooldowns • Displays • Statistics • API
hAntiRelog — это полноценная система управления PvP-режимом, которая защищает сервер от выхода игроков во время боя.
Плагин автоматически отмечает участников после прямой атаки или попадания снарядом, отслеживает сразу нескольких противников, обновляет таймер при повторных ударах, ограничивает нежелательные действия, наказывает за выход, показывает состояние боя через BossBar, Scoreboard, ActionBar и Title, а также сохраняет подробную статистику игроков.
Помимо стандартного AntiRelog-функционала, в плагине есть отдельная система задержек для конкретных предметов, GUI для управления cooldown, интеграции с WorldGuard, EssentialsX и ViaVersion, PlaceholderAPI-плейсхолдеры и публичный API для разработчиков.
Основные возможности
- Автоматический режим боя — включается после PvP-урона между игроками.
- Поддержка снарядов — бой начинается и при попадании стрелой, трезубцем или другим снарядом, выпущенным игроком.
- Обновляемый таймер — каждый новый удар возвращает или продлевает время боя.
- Несколько противников — плагин может одновременно отслеживать всех активных противников игрока.
- Настраиваемая длительность — время режима боя задаётся в секундах.
- Отключённые миры — можно полностью запретить запуск режима боя в выбранных мирах.
- Наказание за выход — убийство игрока и выполнение настраиваемых actions.
- Сохранение боя после выхода — при необходимости бой можно восстановить после повторного входа игрока.
- Настройка поведения при смерти — можно выбрать, будет ли бой завершаться после смерти.
- Выключение vanish и god mode — интеграция с EssentialsX.
- Отключение полёта — при входе в бой плагин может выключить flight.
- Изменение GameMode — creative, spectator и adventure можно автоматически переводить в survival или другой режим.
- Восстановление состояния — после боя можно вернуть прежний vanish, god mode, flight и GameMode.
- Блокировка команд — блокировка всех команд или только выбранного списка.
- Whitelist команд — отдельный список команд, разрешённых во время боя.
- Блокировка телепортаций — отдельные настройки для разных причин телепорта.
- Блокировка порталов — Незер, Энд, врата Энда и общий PlayerPortalEvent.
- Блокировка элитр и фейерверков.
- Блокировка сундуков и эндер-сундуков.
- Блокировка установки и разрушения блоков.
- Ограничение оружия до начала боя — можно запретить начинать бой определёнными предметами.
- Задержки для конкретных предметов — отдельный cooldown во время боя.
- GUI управления cooldown — просмотр, изменение и удаление задержек предметов.
- BossBar-таймер — цвет, стиль, текст и режим прогресса настраиваются.
- ActionBar-таймер — отдельное настраиваемое отображение.
- Title при начале и завершении боя.
- Динамический Scoreboard — разные шаблоны в зависимости от количества противников.
- PlaceholderAPI — встроенные плейсхолдеры состояния боя и статистики.
- WorldGuard — поддержка PVP-флага и настраиваемых регионов продолжения боя.
- ViaVersion — адаптация Scoreboard для старых клиентских протоколов.
- SQLite и MySQL — хранение статистики и настроек cooldown.
- Статистика игроков — бои, выходы, наказания, последний противник и время событий.
- Гибкая система actions — сообщения, команды, звуки, эффекты, BossBar, Vault и другие действия.
- Публичный API — получение состояния боя, списка противников, статистики и ручное управление тегами.
- MiniMessage и HEX-цвета — современное форматирование сообщений и отображений.
Как работает режим боя?
Режим боя запускается автоматически, когда один игрок наносит урон другому.
Поддерживаются:
- прямые атаки игрока;
- урон от снаряда, выпущенного игроком;
- повторное обновление таймера при новых попаданиях;
- одновременный бой с несколькими противниками;
- автоматическое завершение после истечения времени.
Самоурон не создаёт PvP-тег. Игроки с правом обхода также могут быть исключены из стандартной логики режима боя.
Продолжительность задаётся в конфиге:
Код:
settings:
time: 30
Если игрок получает новый удар до окончания таймера, время обновляется. Это не позволяет просто дождаться нескольких секунд после первого попадания и выйти с сервера во время продолжающейся драки.
Несколько активных противников
hAntiRelog не ограничивается одним последним противником.
Плагин хранит список активных участников боя и может:
- отображать нескольких противников в Scoreboard;
- парсить PlaceholderAPI-плейсхолдеры отдельно от лица каждого противника;
- показывать имя, здоровье, пинг и другие данные участников;
- передавать список активных противников через API;
- переключать шаблон Scoreboard в зависимости от количества участников.
В стандартном Scoreboard уже предусмотрены отдельные варианты для количества противников от 0 до 7 и более. Если противников больше семи, стандартный шаблон показывает первые семь активных участников.
Количество секций, строки и расположение информации можно изменить самостоятельно.
Управление состоянием игрока
При входе в режим боя плагин может автоматически отключать возможности, способные дать игроку преимущество или позволить избежать PvP.
Доступно отключение:
- vanish через EssentialsX;
- god mode через EssentialsX;
- полёта;
- creative mode;
- spectator mode;
- adventure mode;
- survival mode, если это необходимо для вашей механики.
Для каждого GameMode можно отдельно указать:
- нужно ли изменять этот режим;
- в какой новый режим переводить игрока.
После завершения боя плагин умеет вернуть сохранённое состояние игрока.
Можно отдельно настроить восстановление:
- vanish;
- god mode;
- полёта;
- creative;
- spectator;
- adventure;
- survival.
Например, администратор в creative может быть переведён в survival во время тестового боя, а после завершения снова возвращён в creative.
Наказание за выход
Если игрок покидает сервер во время активного боя, hAntiRelog может применить наказание.
Настраиваются два независимых механизма:
- kill — убить игрока непосредственно при выходе;
- actions — выполнить любое количество дополнительных действий.
Пример настройки:
Код:
quitPunish:
enable: true
punish:
kill: true
actions:
- "[BROADCAST] {player} вышел во время боя"
- "[CONSOLE] eco take {player} 1000"
Через actions можно:
- отправить сообщение игроку;
- оповестить весь сервер;
- выполнить консольную команду;
- забрать деньги;
- выдать эффект;
- создать частицы или фейерверк;
- запустить другое серверное наказание.
Плагин записывает количество выходов и наказаний в статистику игрока.
Сохранение боя после перезахода
Настройка:
Код:
settings.combat.quitRemoveCombat
определяет, будет ли состояние боя полностью удаляться при выходе.
Если значение установлено в false, плагин:
- временно приостанавливает активное состояние;
- сохраняет связи игрока с противниками;
- очищает отображения на момент выхода;
- восстанавливает режим боя после повторного подключения;
- снова запускает BossBar, Scoreboard и другие выбранные отображения.
Это позволяет не сбрасывать PvP-тег обычным быстрым перезаходом.
Настройка поведения при смерти
Через параметр:
Код:
settings.combat.deathRemoveCombat
можно определить, будет ли режим боя завершаться после смерти игрока.
Это позволяет использовать разные сценарии:
- обычное завершение боя после смерти;
- сохранение боевого состояния после возрождения;
- собственная логика через actions и сторонние плагины.
Блокировка команд
Во время боя можно заблокировать:
- абсолютно все команды;
- только перечисленные команды;
- команды вместе с их аргументами.
Пустой список:
Код:
list: {}
означает блокировку всех команд.
Если добавить команды в список, блокироваться будут только они.
Отдельно поддерживается whitelist:
Код:
whitelistCommands:
enable: true
list:
- "tempban"
- "tempmute"
- "spec"
- "ban"
- "mute"
Это позволяет оставить доступ к модераторским, информационным или другим необходимым командам.
При попытке выполнить запрещённую команду запускаются настраиваемые actions. В них доступен плейсхолдер:
Код:
{command}
Ограничение телепортаций
Каждую причину телепортации можно включить или выключить отдельно.
Поддерживаются:
- COMMAND — телепортация командой;
- PLUGIN — телепортация сторонним плагином;
- ENDER_PEARL — эндер-жемчуг;
- CHORUS_FRUIT — плод хоруса;
- NETHER_PORTAL — портал в Незер;
- END_PORTAL — портал в Энд;
- END_GATEWAY — врата Энда;
- SPECTATE — телепортация в режиме наблюдателя;
- UNKNOWN — неизвестная причина;
- PlayerPortalEvent — отдельная общая блокировка порталов.
У каждой причины есть собственный переключатель и отдельный список actions.
Например, можно запретить телепортацию командами, но оставить эндер-жемчуг и плод хоруса доступными.
Дополнительные ограничения
Во время боя можно отдельно блокировать:
- использование элитр;
- использование фейерверков;
- открытие эндер-сундуков;
- открытие обычных и trapped-сундуков;
- установку блоков;
- разрушение блоков;
- использование порталов.
Каждое ограничение имеет:
- свой параметр enable;
- собственные сообщения;
- собственный список actions.
Благодаря этому реакция на запрещённое действие не ограничивается одним сообщением. Можно проиграть звук, показать ActionBar, выполнить команду или применить эффект.
Предметы, которыми нельзя начинать бой
Отдельная механика позволяет запретить использование выбранных предметов до входа в режим боя.
Стандартный список включает:
Код:
MACE
TRIDENT
WOODEN_SPEAR
STONE_SPEAR
COPPER_SPEAR
IRON_SPEAR
GOLDEN_SPEAR
DIAMOND_SPEAR
NETHERITE_SPEAR
Список полностью редактируется.
Механика позволяет сделать предмет доступным только после того, как игрок уже оказался в активном PvP. При попытке использовать запрещённый предмет до начала боя выполняются настроенные actions.
Индивидуальные cooldown предметов
hAntiRelog содержит отдельную систему задержек предметов во время боя.
Администратор берёт нужный предмет в основную руку и задаёт ему собственное время повторного использования.
Плагин учитывает не только материал предмета, но и его точные метаданные. Это позволяет создавать отдельные cooldown для:
- обычных материалов;
- кастомных предметов;
- предметов с названием и lore;
- предметов с зачарованиями;
- предметов с CustomModelData;
- предметов с собственными PersistentData/NBT-данными.
При первом использовании предмета запускается установленная задержка. Повторная попытка до окончания cooldown отменяется.
Задержки применяются именно во время активного режима боя.
GUI управления cooldown
Все настроенные предметы можно открыть через специальное меню:
Код:
/hantirelog cooldowns
GUI поддерживает:
- до 45 предметов на одной странице;
- предыдущую и следующую страницу;
- отображение текущей задержки;
- изменение времени без повторного ввода команды;
- удаление предмета из системы.
Управление предметом в GUI:
- ЛКМ — добавить 1 секунду;
- Shift + ЛКМ — добавить 10 секунд;
- ПКМ — убрать 1 секунду;
- Shift + ПКМ — убрать 10 секунд;
- Средняя кнопка мыши — удалить cooldown.
Заголовок меню настраивается через config.yml.
Если база данных включена, список предметов и длительность их задержек сохраняются после перезапуска.
BossBar
BossBar можно использовать как основной таймер боя.
Настраиваются:
- включение и выключение;
- интервал обновления;
- текст;
- цвет;
- стиль;
- режим прогресса.
Доступные цвета:
Код:
PINK
BLUE
RED
GREEN
YELLOW
PURPLE
WHITE
Доступные стили:
Код:
SOLID
SEGMENTED_6
SEGMENTED_10
SEGMENTED_12
SEGMENTED_20
Режимы прогресса:
- time — шкала уменьшается вместе с таймером;
- static — шкала всегда остаётся заполненной.
В тексте доступны:
Код:
{time}
{player}
{opponent}
ActionBar
ActionBar имеет отдельный конфигурационный файл.
Можно настроить:
- включение;
- частоту обновления в тиках;
- текст;
- MiniMessage и HEX-цвета;
- плейсхолдеры игрока, противника и времени.
Пример:
Код:
<white>Режим боя <#FFCF00>{time}<white> сек до окончания
Title при начале и завершении боя
Для входа и выхода из режима боя используются независимые настройки.
Для каждого Title можно изменить:
- включение;
- верхнюю строку;
- subtitle;
- fadeIn;
- stay;
- fadeOut.
Например, при начале боя игрок может увидеть предупреждение о запрете выхода, а после окончания — сообщение о том, что сервер уже можно покинуть.
Продвинутый Scoreboard
Встроенный Scoreboard имеет отдельные наборы строк для разного количества активных противников.
Поддерживаются ключи вида:
Код:
opponents_3
opponents_0;1;2
Если количество активных противников превышает максимальную настроенную секцию, используется самая большая доступная секция.
В стандартном конфиге есть шаблоны:
Код:
opponents_0
opponents_1
opponents_2
opponents_3
opponents_4
opponents_5
opponents_6
opponents_7
Строки поддерживают:
- PlaceholderAPI;
- {time};
- {player};
- {opponent};
- MiniMessage;
- HEX-цвета.
PlaceholderAPI от лица противников
Уникальная возможность Scoreboard — парсинг выбранных строк от лица конкретного противника.
Используется настройка:
Код:
opponentSlots:
- "1;5"
- "2;6"
- "3;7"
Формат:
Код:
номерПротивника;номерСтроки
Например, значение 1;5 означает, что пятая строка будет обработана через PlaceholderAPI от лица первого противника.
Благодаря этому можно вывести:
- имя каждого противника;
- его здоровье;
- пинг;
- группу;
- статистику;
- любые другие совместимые PAPI-плейсхолдеры.
Интервалы обновления Scoreboard
Для каждого PlaceholderAPI-плейсхолдера можно назначить собственную частоту обновления в миллисекундах.
Пример:
Код:
placeholderUpdates:
defaultMillis: 1000
intervals:
"%player_health_rounded%": 1000
"%player_ping%": 5000
"%player_name%": -1
Значение -1 означает, что плейсхолдер будет вычислен один раз при первом отображении.
Это позволяет:
- часто обновлять здоровье;
- реже обновлять пинг;
- не пересчитывать постоянные значения;
- снизить количество лишних PlaceholderAPI-вызовов.
При наличии ViaVersion плагин определяет протокол клиента и использует совместимый вариант Scoreboard для старых версий клиента.
Интеграция с WorldGuard
Интеграция включается отдельно:
Код:
settings.worldGuard.enable: true
hAntiRelog учитывает состояние PVP в регионе WorldGuard.
Также можно указать регионы, в которых уже начатый бой продолжит обновляться даже при флаге PVP DENY:
Код:
combatContinueRegions:
1:
worlds:
- "world"
regions:
- "spawn"
- "safezone"
Это полезно для границ PvP-зон: игрок не сможет просто сделать шаг в защищённый регион и мгновенно сбросить уже активный бой.
Интеграция с EssentialsX
При наличии EssentialsX плагин может:
- отключать vanish при начале боя;
- отключать god mode при начале боя;
- запоминать предыдущее состояние;
- опционально восстанавливать vanish после завершения;
- опционально восстанавливать god mode после завершения.
Все действия включаются и выключаются независимо.
Интеграция с ViaVersion
ViaVersion используется для определения версии протокола клиента.
Если игрок подключается со старой версии через ViaVersion, hAntiRelog может использовать совместимую реализацию Scoreboard.
Интеграция является опциональной и автоматически отключается, если ViaVersion не установлен.
Статистика игроков
hAntiRelog ведёт подробную статистику.
Сохраняются:
- UUID игрока;
- последний известный ник;
- количество входов в режим боя;
- количество выходов с сервера во время боя;
- количество применённых наказаний;
- последний противник;
- время последнего входа в бой;
- время последнего выхода из боя;
- тип последнего наказания;
- количество смертей от наказания.
Статистика обновляется во время работы плагина и периодически записывается в базу данных без блокировки основного игрового потока.
SQLite и MySQL
Поддерживаются два типа базы данных:
- SQLite — локальное хранение без отдельного сервера базы данных.
- MySQL — хранение на внешнем сервере с использованием HikariCP.
В базе хранятся:
- статистика игроков;
- настроенные предметы с cooldown;
- длительность задержки каждого предмета.
Если база данных отключена, информация хранится только в памяти и сбрасывается после полного перезапуска сервера.
PlaceholderAPI
Встроенный identifier:
Код:
hantirelog
Доступные плейсхолдеры:
Код:
%hantirelog_in_combat%
%hantirelog_time%
%hantirelog_opponent%
%hantirelog_quit_count%
%hantirelog_punish_count%
%hantirelog_combat_count%
%hantirelog_last_punish%
%hantirelog_in_combat% — находится ли игрок в режиме боя.
%hantirelog_time% — оставшееся время.
%hantirelog_opponent% — текущий основной противник.
%hantirelog_quit_count% — количество выходов во время боя.
%hantirelog_punish_count% — количество наказаний.
%hantirelog_combat_count% — количество входов в режим боя.
%hantirelog_last_punish% — тип последнего наказания.
Значения “Да”, “Нет” и текст при отсутствии противника настраиваются в config.yml.
PlaceholderAPI также работает внутри Scoreboard, текстов отображений и actions.
Система actions
hAntiRelog поддерживает гибкую систему действий.
Типы actions:
Код:
[MESSAGE]
[ACTIONBAR]
[TITLE]
[SOUND]
[PARTICLE]
[BOSSBAR]
[BROADCAST]
[CONSOLE]
[PLAYER]
[VAULT]
[EFFECT]
[FIREWORK]
[CLOSE]
Actions можно использовать для:
- наказания за выход;
- попытки выполнить запрещённую команду;
- заблокированной телепортации;
- использования запрещённого предмета;
- попытки открыть сундук;
- попытки использовать элитры или фейерверк;
- административных сообщений;
- других ограничений.
Внутренние плейсхолдеры actions:
Код:
{player}
{uuid}
{prefix}
{target}
{targetUuid}
{opponent}
{opponentUuid}
{time}
{command}
{world}
{x}
{y}
{z}
{amount}
{reason}
Также поддерживается обработка PlaceholderAPI.
Для [VAULT]-действий можно добавлять, забирать, очищать или устанавливать баланс игрока. Для этого дополнительно нужны Vault и совместимый экономический плагин.
Публичный API
hAntiRelog регистрирует AntiRelogApi через Bukkit ServicesManager.
Через API другой плагин может:
- проверить, находится ли игрок в бою;
- получить оставшееся время;
- получить стандартную длительность боя;
- получить основного противника;
- получить UUID и имя противника;
- получить всех активных противников;
- добавить игрока в бой;
- принудительно добавить игрока в бой;
- задать тестовое количество противников;
- завершить бой;
- проверить bypass;
- получить статистику игрока.
Основные методы:
Код:
isInCombat(Player)
getTimeLeft(Player)
getCombatTime()
getOpponent(Player)
getOpponentName(Player)
getOpponentUuid(Player)
getActiveOpponents(Player)
tag(Player, Player)
forceTag(Player, Player)
forceTag(Player, Player, int)
untag(Player)
hasBypass(Player)
getStats(Player)
getStats(UUID)
Объект статистики содержит:
Код:
uuid
name
combatCount
quitCount
punishCount
lastOpponent
lastCombatEnter
lastCombatExit
lastPunish
punishDeaths
Команды
Все административные команды требуют право hantirelog.admin.
Код:
/hantirelog
Показать справку по командам.
Код:
/hantirelog reload
Перезагрузить основной конфиг и файлы отображений.
Код:
/hantirelog test <игрок> [противники]
Запустить тестовый режим боя для игрока. Количество противников позволяет проверить разные секции Scoreboard.
Код:
/hantirelog cooldown set <секунды>
Установить cooldown предмету в основной руке.
Код:
/hantirelog cooldown add <секунды>
Добавить время к cooldown предмета в основной руке.
Код:
/hantirelog cooldown remove
Удалить cooldown предмета в основной руке.
Код:
/hantirelog cooldowns
Открыть GUI всех настроенных предметов.
Права
Код:
hantirelog.admin
Доступ к:
- перезагрузке конфигурации;
- тестированию режима боя;
- созданию cooldown предметов;
- изменению cooldown;
- удалению cooldown;
- GUI управления предметами.
Код:
hantirelog.bypass
Обход режима боя, ограничений и наказания за выход.
Оба права по умолчанию выданы операторам сервера.
Что можно настроить?
- префикс плагина;
- продолжительность режима боя;
- заголовок GUI cooldown;
- поведение боя при выходе;
- поведение боя при смерти;
- отключённые миры;
- отключение vanish;
- отключение god mode;
- отключение flight;
- изменение каждого GameMode;
- восстановление состояния после боя;
- убийство за выход;
- actions за выход;
- блокировку всех или выбранных команд;
- whitelist команд;
- предметы, которыми нельзя начинать бой;
- блокировку каждой причины телепортации;
- блокировку порталов;
- блокировку элитр;
- блокировку фейерверков;
- блокировку сундуков;
- блокировку эндер-сундуков;
- блокировку установки блоков;
- блокировку разрушения блоков;
- actions каждого ограничения;
- тексты PlaceholderAPI-значений;
- WorldGuard-регионы продолжения боя;
- SQLite или MySQL;
- BossBar;
- ActionBar;
- начальный и финальный Title;
- секции Scoreboard;
- строки Scoreboard;
- слоты противников;
- интервалы обновления плейсхолдеров;
- цвета, стили и MiniMessage-разметку;
- индивидуальные cooldown предметов;
- глобальные административные actions.
Зависимости и совместимость
Обязательные:
- Java 25
- Paper/Purpur
- PlaceholderAPI
Версии, поддерживаемые текущей сборкой:
- Minecraft 1.21.11
- Minecraft 26.1.x
- Minecraft 26.2.x
Опциональные интеграции:
- WorldGuard — работа с PVP-флагом и регионами продолжения боя.
- EssentialsX — отключение и восстановление vanish/god mode.
- ViaVersion — совместимый Scoreboard для старых клиентских протоколов.
- Vault — денежные actions.
Важно: плагин использует Paper API и версионные NMS-мосты. Обычный Spigot не следует указывать как поддерживаемую платформу.
- Зависимости
- Обязательные: PlaceholderAPI. Необязательные: WorldGuard, EssentialsX, ViaVersion
- Команды и права
- Выше всё написано