- Для версий
- 1.21.✘
- Исходный код
- https://github.com/AkyRayy/AkyAntiTeamer
Написал плагин для Paper 1.21.4, который решает проблему несправедливых битв на PvP-аренах и выживании, когда одного игрока зажимают вдвоем или втроем (2v1, 3v1 и больше).
Что делает плагин:
Вся защита разбита на независимые модули — любую из этих функций можно настроить или полностью отключить в конфиге.
Особенности реализации:
Команды и права
Основная команда:
Административные права:
Конфигурация (config.yml)
Что делает плагин:
[] Снижает урон по жертве. Если игрока бьют сразу несколько человек, входящий урон уменьшается в зависимости от количества нападающих.
[] Штрафует толпу. Урон вторичных атакующих режется, плюс их отталкивает назад (Knockback), чтобы жертва могла выбраться из окружения.
[] Дает временные баффы. В момент начала 3х1 (например) плагин может выдать жертве скорость или поглощение на пару секунд.
[] Запрет вмешательства (Строгий 1v1). Опциональный режим в конфиге. Если два игрока дерутся, третий просто не сможет нанести урон ни одному из них.
Вся защита разбита на независимые модули — любую из этих функций можно настроить или полностью отключить в конфиге.
Особенности реализации:
[] Поддержка только актуальной версии: Paper 1.21.4 (Java 21).
[] Сообщения над хотбаром (Action Bar) и звуки работают через Adventure API (MiniMessage).- Внутренние таймеры и очистка устаревших данных о боях идут асинхронно. Лагов на основном потоке сервера нет, утечек памяти тоже.
Команды и права
Основная команда:
/antiteamer (алиас: /at)
[]/at status [игрок]— посмотреть, сколько человек сейчас атакуют цель. (Право: akyantiteamer.command.use)
[]/at reload— перезагрузить конфигурацию без рестарта сервера. (Право: akyantiteamer.command.reload)
[]/at stats— внутренняя статистика активных боев в памяти. (Право: akyantiteamer.command.use)
[]/at toggle— включить/выключить личные уведомления на экране. (Право: akyantiteamer.command.use)
Административные права:
akyantiteamer.admin — полный доступ к плагину.akyantiteamer.bypass — иммунитет от ограничений анти-тиминга.Конфигурация (config.yml)
YAML:
# ==============================================================================
# Конфигурация AkyAntiTeamer
# Защита игроков от толпы (2v1, 3v1 и т.д.) в Minecraft PvP (1.21.4)
# ==============================================================================
settings:
# Главный переключатель работы плагина (true - включен, false - выключен)
enabled: true
# Список миров, в которых защита от тиминга отключена
disabled-worlds:
- "world_lobby"
- "spawn"
combat:
# Время в секундах, в течение которого сохраняется метка боя между игроками после удара
tag-duration-seconds: 12
# Игнорировать ли удары по NPC (например, Citizens, фейковые игроки) и от них
ignore-npcs: true
# Учитывать ли дальние атаки (стрелы, трезубцы) при подсчете количества атакующих
include-projectiles: true
protection-modes:
# Режим 1: Строгий режим дуэли 1v1
# Если включен, третьим игрокам полностью запрещено атаковать участников текущей дуэли.
strict-duel-enforcement:
enabled: false
block-message: "<red><b>[AntiTeamer]</b> <gray>Вы не можете атаковать <yellow>%victim%</yellow>! Игрок уже сражается в дуэли 1v1."
# Режим 2: Снижение входящего урона жертве
# Уменьшает получаемый урон игроку, которого атакуют 2 и более противников одновременно.
damage-mitigation:
enabled: true
# Процент снижения урона за каждого дополнительного атакующего (сверх 1)
# Пример: при 2v1 (1 лишний враг) -> 25% защиты. При 3v1 (2 лишних) -> 50% защиты.
mitigation-per-extra-attacker-percent: 25.0
# Максимальный предел (кап) снижения урона в процентах
max-mitigation-percent: 65.0
# Режим 3: Штраф и отталкивание для толпы атакующих
# Снижает исходящий урон игроков, атакующих в большинстве, и отталкивает их от жертвы.
attacker-penalty:
enabled: true
# Снижение урона атакующего в процентах
damage-penalty-percent: 40.0
# Применять ли отталкивание (Knockback) к атакующим в толпе
apply-knockback: true
knockback-strength: 0.55
# Режим 4: Защитные эффекты (баффы) для жертвы
# Выдает временные эффекты зелий игроку при первом попадании в ситуацию ганга.
defensive-buffs:
enabled: true
# Перезарядка в секундах перед повторной выдачей баффов тому же игроку
cooldown-seconds: 30
# Длительность выдаваемых эффектов в секундах
duration-seconds: 6
# Список эффектов зелий (имя эффекта: уровень, где 0 = Уровень I, 1 = Уровень II)
effects:
SPEED: 0
ABSORPTION: 0
DAMAGE_RESISTANCE: 0
notifications:
action-bar:
enabled: true
victim-message: "<green><b>[AntiTeamer]</b> <gray>Вас жмёт толпа <red>%attackers%:1</red>! Входящий урон снижен на <gold>%mitigation%%</gold>."
attacker-message: "<red><b>[AntiTeamer]</b> <gray>Атака толпой (<red>%attackers%:1</red>)! Штраф к вашему урону: <gold>%penalty%%</gold>."
sounds:
enabled: true
penalty-sound: "ENTITY_VILLAGER_NO"
buff-sound: "BLOCK_BEACON_ACTIVATE"