DGuard

PacketEvents: что это и как обновить

PacketEvents — плагин-библиотека, через который другие плагины читают и отправляют пакеты Minecraft. Сам он ничего не меняет в игре, но без него не запустятся плагины, которые на него опираются, — например, античит DGuard. Обновление: скачать последний релиз, заменить jar, перезапустить.

Команда DGuard5 мин

PacketEvents — библиотека протокола Minecraft Java Edition: она даёт плагинам удобный способ читать и отправлять пакеты, которыми обмениваются клиент и сервер. Игрокам она ничего не добавляет. Её ставят, потому что её требует другой плагин — например, античит. Обновляется она как любой плагин: последний релиз с Modrinth → замена `.jar` в `plugins/` → перезапуск.

Что такое PacketEvents

PacketEvents
Что этоБиблиотека протокола для Minecraft Java Edition, построена на Netty
Авторretrooper, проект начат в апреле 2020 года; в команде на Modrinth также booky10
ЛицензияGPL-3.0, код открыт на GitHub
ПлатформыPaper, Spigot, Folia, Purpur; Velocity; BungeeCord и Waterfall; Sponge; Fabric
РелизыModrinth, GitHub Releases, SpigotMC
Сборки для разработчиковJenkins CodeMC — не для боевых серверов
По README проекта, его документации и странице на Modrinth.

Зачем античиту библиотека пакетов

Клиент и сервер общаются пакетами: перемещение, поворот камеры, удар, начало и конец ломания блока, клик в инвентаре — у каждого действия свой пакет. Обычный API плагинов (Bukkit) показывает уже обработанные события вроде «игрок ударил моба», а не сам поток пакетов в том порядке, в каком их прислал клиент.

Добраться до сырых пакетов можно и без библиотеки, но тогда плагин лезет во внутренние классы сервера, которые меняются от версии к версии, и автору приходится переписывать код под каждую. Библиотека берёт это на себя: один API для всех поддерживаемых версий и платформ.

Античиту поток пакетов нужен как воздух. Timer виден по частоте пакетов движения, BadPackets — по пакетам, которых честный клиент отправить не может. DGuard идёт дальше: команда разобрала клиент Minecraft 1.21.11 до пакета, и честный клиент отправляет пакеты внутри тика в строгом порядке. Чит его ломает — например, KillAura поворачивает камеру прямо перед ударом, — а лаг так сделать не может. Подробно — порядок пакетов.

Как поставить

  1. 1

    Откройте страницу на Modrinth

    modrinth.com/plugin/packetevents, вкладка версий. Отфильтруйте по загрузчику Paper и каналу Release.

  2. 2

    Скачайте нужный файл

    Для Paper и Leaf это packetevents-spigot-<версия>.jar. Файл …-sources.jar рядом — исходники для разработчиков, на сервер его не ставят.

  3. 3

    Положите в plugins/ и перезапустите

    Один экземпляр на сервер: им пользуются все плагины, которым он нужен. Проверьте /plugins — PacketEvents должен быть зелёным.

Релиз или dev-сборка

Релизы выходят на Modrinth, GitHub и SpigotMC. Между ними на Jenkins CodeMC собираются сборки для разработчиков — с версией вида SNAPSHOT. Они нужны, чтобы проверить исправление до релиза, а не чтобы держать их на сервере с игроками.

DGuard работает только на последнем релизе PacketEvents, dev- и SNAPSHOT-сборки не подходят. Следить за этим вручную не нужно: панель DGuard берёт последний релиз с Modrinth, показывает статус PacketEvents у каждого сервера и пишет вам, когда пора обновиться. Из консоли версию видно в /dguard license — рядом с тарифом и состоянием лицензии.

Последний релиз важен не только из-за исправлений. Каждая версия PacketEvents знает протоколы определённых версий Minecraft — на Modrinth у каждого файла указан их список. Перевели сервер на новую версию игры — без свежего релиза PacketEvents плагины, которые на него опираются, могут не понять новые пакеты.

Как обновить PacketEvents

  1. 1

    Узнайте текущую версию

    /version packetevents в игре или в консоли. На сервере с DGuard — /dguard license или карточка сервера в панели: там же видно последний релиз.

  2. 2

    Скачайте последний релиз

    С Modrinth, фильтр Paper + Release, файл packetevents-spigot-<версия>.jar.

  3. 3

    Замените файл

    Остановите сервер, удалите старый packetevents-…jar из plugins/ и положите новый. Две версии в папке — гарантированные ошибки при старте.

  4. 4

    Запустите и проверьте

    Сервер стартовал без ошибок, PacketEvents зелёный в /plugins, в панели DGuard статус обновился. /reload для этого не годится — только перезапуск: почему.

PacketEvents на сети серверов

На сети с BungeeCord или Velocity DGuard ставится на каждый игровой сервер, у каждого свой ключ, — значит, и PacketEvents нужен на каждом игровом сервере рядом с ним. На сам прокси PacketEvents ставят, только если его требует плагин прокси: для Velocity и BungeeCord у проекта отдельные сборки. Как устроена сеть — в статье Velocity или BungeeCord.

«Нет PacketEvents» и другие проблемы

Что видноПричинаЧто делать
Панель DGuard: «Нет PacketEvents»PacketEvents не лежит в plugins/ или не загрузился. Без него DGuard не запускает защитуПоложите последний релиз с Modrinth — не dev-сборку — и перезапустите сервер
Панель пишет, что вышел новый релизВаша версия устарелаОбновите по шагам выше
Панель пишет о сборке для разработчиковСтоит dev- или SNAPSHOT-сборкаЗамените её последним релизом
PacketEvents нет в /plugins или он красныйФайл не для той платформы (например, сборка для Velocity) или ошибка при запускеВозьмите spigot-сборку и прочитайте ошибку в консоли
Ошибки при старте после обновленияВ plugins/ остались две версииОставьте одну, новую

Остальные проблемы с подключением — сервер не появился в панели, ключ не принят — разобраны на странице установки DGuard.

Частые вопросы

Что такое PacketEvents в Minecraft?

Плагин-библиотека, через которую другие плагины читают и отправляют пакеты Minecraft. Сам он ничего в игре не меняет, его ставят ради плагинов, которые его требуют, например античитов.

Где скачать PacketEvents?

Релизы — на Modrinth, GitHub Releases и SpigotMC. Для Paper и Leaf нужен файл packetevents-spigot-<версия>.jar, без суффикса sources.

Можно ли поставить dev-сборку PacketEvents?

Для боевого сервера не стоит: dev- и SNAPSHOT-сборки нужны разработчикам для проверки исправлений. DGuard работает только на последнем релизе.

Как обновить PacketEvents?

Скачайте последний релиз с Modrinth, остановите сервер, замените старый jar в plugins/ новым и запустите сервер снова. Без /reload.

Нужен ли PacketEvents на прокси Velocity?

Только если его требует плагин на самом прокси — для Velocity есть отдельная сборка. Для DGuard PacketEvents нужен на каждом игровом сервере, где стоит античит.

Почему DGuard пишет «Нет PacketEvents»?

На сервере нет PacketEvents или он не загрузился, а без него DGuard не запускает защиту. Положите в plugins/ последний релиз с Modrinth и перезапустите сервер.

Источники

Все разделы

Поставьте лучший античит для современного Minecraft

DGuard ловит все 47 видов читов из нашего сравнения — у ближайшего соперника, Intave, 27. Полная защита на любом тарифе, до 30 игроков онлайн — бесплатно.