
Better Anti Dupe
Плагин Better Anti Dupe для Paper, Spigot и Folia отслеживает дюп предметов через защищённый журнал операций и блокирует классические дюперы. Скачайте и защитите экономику сервера Майнкрафт.
Better Anti Dupe - серверный плагин для Minecraft, который ловит дюперов там, где обычные античиты бессильны. Если вы держали сервер с экономикой, то знаете эту боль: кто-то собрал поршневую машинку, наклепал двойные сундуки с незеритом, и через неделю цены на аукционе летят в пропасть. Большинство античитов смотрят на скорость передвижения, reach и килл-ауру, а дюп предметов остаётся в тени. Этот плагин закрывает именно эту дыру.
Скачать Better Anti Dupe стоит хотя бы ради спокойствия: он ведёт неизменяемый журнал каждого перемещения предметов на сервере и сверяет реальный инвентарь игрока с тем, что тот должен иметь по журналу. Не сошлось - вы получаете алерт до того, как наклепанные ресурсы разойдутся по рукам.
Совместимость и требования
| Серверное ядро | Paper, Folia, Spigot и форки на базе Paper (Purpur, Pufferfish и другие) |
| Версии Minecraft | 1.21.x (обычный jar, поддерживаются 1.21.0-1.21.11) и 26.x (jar с пометкой -mc26, версии 26.1-26.2) |
| Java | 21+ для 1.21.x, 25+ для 26.x |
| Внешние сервисы | Не нужны - SQLite встроен. Redis опционален для сетей из нескольких серверов |
Плагин полностью серверный: игрокам ничего качать не нужно. Актуальная ветка - 4.2.0 (включая сборку 4.2.0-mc26). Кстати, до версии 4.0.0 проект назывался AntiDupePro, так что если встретите старое название - это он же.
Что именно ловит Better Anti Dupe
Список внушительный, и это не полный перечень:
- Rail / carpet / TNT / gravity-дюперы - классические поршневые и энд-портальные машинки не просто детектятся, а блокируются полностью (каждый тип отключается в конфиге отдельно)
- Дюпы через фантомные GUI - открытые интерфейсы принудительно закрываются, если шалкер или сундук уничтожен, а осёл или лодка с сундуком выгрузилась из чанка
- Дюпы при рестарте - перемещение предметов во время выключения сервера может записать их и в данные игрока, и в данные мира; плагин закрывает все инвентари до этих записей, дублировать нечего
- Клонирование стаков - клик-тайминги, десинхронизация курсора, трюки с перетаскиванием
- Отмывание через шалкеры и бандлы - рекурсивное сканирование содержимого на любой глубине вложенности
- Дюпы через рамки - поршень в рамку, гонка чанков, варианты с энд-кристаллами
- Инвентари сущностей - лошади, ослы, ламы, лодки и вагонетки с сундуками
- Отмывание через воронки - предметы, проходящие через автоматику, тоже сканируются
- Выходы из рабочих станций - кузница, наковальня, ткацкий станок, камнерез, картографический стол, точило, печки
- Перемещения по контейнерам - сундуки (одинарные и двойные), бочки, эндер-сундуки, кафедры, узорчатые вазы; учитывается то, что реально переместилось, так что шифт-клики, свопы цифровыми клавишами, двойной клик и перетаскивания измеряются точно
- Торговля с жителями и зачарование - покупка отслеживаемого предмета или зачарование книги корректно засчитываются
- Респавн сущностей при загрузке чанков - семейство "один и тот же предмет подобран дважды"
- Гонка дроп-подбор - дюпы одинаковых NBT через персистентность предметных сущностей
- Злоупотребление скоростью добычи - пороги TMAR (теоретический максимум скорости получения) для каждого материала
- Приобретения без свидетелей - система Proof of Witness помечает игроков, чьи действия никто никогда не видит (админы в ванише корректно игнорируются, так что невидимые патрули не портят статистику доверия)
По факту это самое широкое покрытие дюп-механик, которое я встречал среди бесплатных решений. Обычно плагины такого класса ловят два-три семейства, а тут закрыты даже экзотика вроде lectern-дюпов и decorated pots.
Как это работает
Каждый отслеживаемый предмет несёт UUID владельца в NBT - при этом предметы по-прежнему стакаются как в ванилле. Каждое событие получения и потери (добыча, крафт, подбор, кладка/взятие из контейнера, рамка, выход из станции и так далее) записывается как запись в журнале, связанная хешами SHA-256. Цепочка защищена от подделки: если кто-то отредактирует базу напрямую, хеш-цепочка сломается, и /adp ledger verify покажет, где именно.
Сверка рекурсивно проходит по инвентарю игрока - включая содержимое шалкеров и бандлов в руках - и сравнивает итог с балансом по журналу. Излишек = дюп.
Невидимость для игроков. Тег владельца вырезается из пакетов, отправляемых клиентам (включено по умолчанию), так что даже игроки с модами-просмотрщиками NBT не увидят его, не смогут протестировать и не отличат отслеживаемый предмет от обычного - при этом серверные данные остаются нетронутыми. Само имя тега настраивается, так что ни один скриншот или кадр со стрима не выдаст, какой плагин его поставил. Переименование безопасно: ранее помеченные предметы остаются под наблюдением и автоматически мигрируют на новое имя. Строгий режим может пойти дальше и вырезать вообще все кастомные данные всех плагинов из исходящих пакетов, с белым списком неймспейсов для ресурспака или клиентских модов. Персонал с правом antidupe.tag.view видит тег в своём клиенте.
Плагин спроектирован так, чтобы не заваливать ложными тревогами: действия проверяются тиком позже (чтобы другие плагины, отменяющие подбор или установку блока, не портили бухгалтерию), предметы, выданные магазинами, китами и волт-плагинами, никогда не записываются в вину игроку, а каждый алерт проходит через пороги по материалам, которые вы контролируете.
Важный нюанс из практики
Если у вас на сервере стоят плагины магазинов или китов, обязательно проверьте, что они выдают предметы через стандартные события - тогда Better Anti Dupe корректно зачтёт их как легитимное получение. Самописные выдачи через прямое редактирование инвентаря могут дать ложный излишек при сверке. Сначала погоняйте плагин в shadow-режиме (только алерты, без авто-удаления) и посмотрите, что всплывёт.
Хранилища данных
Выбирается в config.yml:
- SQLite (по умолчанию) - файловый, персистентный, нулевая возня. Идеально для одиночного сервера.
- Redis - быстрый и общий для нескольких серверов за прокси.
- Memory - только в процессе, теряется при рестарте. Только для разработки и тестов.
Установка
- Скачайте jar под своё ядро: обычный для Minecraft 1.21.x,
-mc26для 26.x. - Закиньте в папку
plugins/. - Запустите сервер. Дефолты адекватные; плагин сам сгенерирует
config.ymlиmaterials.ymlпри первом запуске. - Готово. Введите
/adp helpв игре, чтобы увидеть админ-команды.
Если сервер работает на хостинге вроде BungeeHost (https://bungee.host), установка займёт пару кликов - плагин грузится как любой другой, а Paper-ядра там ставятся в один клик, так что защитить экономику проекта можно буквально за пять минут.
Команды
Все команды живут под /antidupe (алиасы: /adp, /betterantidupe).
| Команда | Что делает |
|---|---|
/adp ledger status | Вершина цепочки, текущие подозреваемые, здоровье системы |
/adp ledger balance <игрок> | Ожидаемые балансы по каждому отслеживаемому материалу |
/adp ledger history <игрок> | Последние записи журнала |
/adp ledger witness <игрок> | Статистика свидетелей и анализ подозрительности |
/adp ledger suspects | Список всех помеченных игроков |
/adp ledger reconcile <игрок> | Принудительная сверка баланса онлайн-игрока |
/adp ledger trust <игрок> | Накопленный счёт доверия |
/adp ledger verify | Проверка всей хеш-цепочки |
Права разделены, чтобы роли персонала можно было настроить точно: antidupe.alerts получает алерты о дюпах в чат (без доступа к командам), antidupe.ledger даёт команды выше, а antidupe.admin включает оба. antidupe.witness.exempt выводит невидимо мониторящий персонал из пула свидетелей, а antidupe.tag.view позволяет доверенному админу видеть скрытый тег владельца в своём клиенте.
Настройка
Три YAML-файла в plugins/BetterAntiDupe/:
config.yml- хранилище, режимы (shadow / авто-удаление), настройки журналаmaterials.yml- отслеживаемые материалы, лимиты скорости, пороги алертовmessages.yml- все игровые сообщения; полностью переводимы (отсутствующие ключи откатываются на английский)
Говорит на вашем языке: английский, бразильский португальский, испанский, немецкий, русский и польский встроены - одна строка language: в config.yml переключает всё.
Алерты можно выводить за пределы игры: Discord, Telegram, Slack или любой кастомный JSON-вебхук (n8n, Zapier, свой бот) - с фильтрацией по важности и защитой от флуда. Смотрите секцию notifications в config.yml.
Дефолты разумные; свои материалы можно добавить в список в любой момент и перезапустить сервер.
Бесплатно и с открытым кодом
Никаких лицензионных ключей и "премиум"-ограждений. Исходники открыты.
Анонимная (приватная) телеметрия
С версии 4.2.0 плагин отправляет анонимную статистику использования. Причина простая: Better Anti Dupe работает тихо, а документация подробная, так что тикетов почти никто не открывает - и узнать, на каких версиях Minecraft он реально крутится, неоткуда. А знать это важно, чтобы закрывать дюп-эксплойты именно для этих версий в первую очередь, а не наугад.
Что отправляется: тип хранилища, какие тумблеры защиты включены, сколько материалов отслеживается, язык, включены ли shadow-режим, авто-удаление и скрытие тега - плюс ядро сервера, версия Minecraft, версия Java и версия плагина.
Что не отправляется никогда: IP-адреса, названия серверов, имена и UUID игроков, данные предметов и что-либо из журнала. Статистика хранится приватно, не публикуется на общедоступной странице - пока база установок мала, публичные цифры подсказали бы дюперам, насколько вероятно, что конкретный сервер защищён.
Поставьте metrics.enabled: false в config.yml, чтобы не отправлять ничего. Отправка отчётов об ошибках (стектрейсов) - отдельная опция и по умолчанию всегда выключена.
Кому нужен этот плагин
Если у вас выживание с экономикой, аукционом или магазинами - это must-have. Один удачный рестарт-дюп может обесценить недели работы честных игроков, а отыграть ситуацию назад потом почти нереально. На анархии, понятно, смысла нет, а вот для приватных серверов, гриферских проектов с защищённой экономикой и сетей за прокси (там как раз пригодится Redis) - ставьте не задумываясь. Скачать Better Anti Dupe можно бесплатно, исходники открыты, так что даже параноидальный аудит кода - вопрос желания.
Сервер для плагина Better Anti Dupe - как у профи
Плагин Better Anti Dupe создан для серверов: на своём сервере вы настраиваете его под себя и решаете, кому играть. Создать сервер с плагином Better Anti Dupe для друзей можно за пару минут - BungeeHost всё уже подготовил.
