Сборки серверов

СливПлатные

Сейчас онлайн

  • Ermachok
  • NoNameXAK
  • Karol67
  • cacti
  • Itz_Koniko
  • fgggggggggg
  • MoWng
  • ТNoebdd
  • CrIzIs
  • лшкшдщ0909
  • PuzyroC
  • WhiteOfAngel
  • arlekin40k
  • azharifarid
  • tlw
  • I7I7
  • DrakoYTuzbggsf
  • qioxxue
  • STPR1232
  • vakakoka946
  • UnSmileStudio
  • SeiniS
  • Rightimar
  • MonSoli
  • Tzaka
  • manera_blaty
  • nexarnexarnexar
  • RIFLI
  • Nicoppa
  • NumaniaVSBG
  • AvtoSenpai
  • sjfvhfjawm
  • callmelove
  • MrAizex
  • SHAMPY
  • Boatswain888
  • DevStarts
  • saksansd
  • gxdly
  • Unravlik
  • Bulochka9167
  • Spooofy
  • VaporyGorilla5
  • scorgme
  • W1een
  • ZloyDrag0n4ikf
  • Shmur
  • m1ilyukhin
  • Moongh0st
  • zavaric

Paper + Velocity: Network Protocol Error из-за locator bar / waypoint UPDATE без TRACK

Corazon161
Версия ядра сервера
1.21+
Всем привет
Нужна помощь с очень странной проблемой на Minecraft 1.21.11.

Кратко:
при включённом vanilla locator bar у игроков периодически происходит disconnect / Network Protocol Error. По клиентским логам видно, что клиент получает waypoint UPDATE, но у него нет соответствующего waypoint в локальной Map, из-за чего происходит NPE и disconnect.
Отключать locator bar как решение не хочу, потому что это важная PvE-фича сервера. Хочу понять первопричину и нормальный способ исправления.

Связка:
  • Velocity + Paper backends
  • Backend-серверы стоят на отдельном VDS
  • Velocity и часть других backend-серверов стоят на другом VDS
  • Панель: Pterodactyl

Проблемный backend:
Paper 1.21.11 build 131
Пример версии:
Paper version 1.21.11-131-ver/1.21.11@6d5b910
Build date: 2026-05-03

Непроблемный backend:
Paper 1.21.11 build 69
Пример версии:
Paper version 1.21.11-69-main@94d0c97
Build date: 2025-12-30

То есть версия Minecraft одинаковая — 1.21.11, но Paper build разный.

Velocity:
Velocity 3.4.0 build 566

Плагины на проблемном backend:
  • FancyNpcs
  • GSit
  • packetevents
  • Spartan
  • Themis
  • ViaVersion
  • ViaBackwards
  • Simple Voice Chat
  • Multiverse-Core
  • WorldGuard
  • LuckPerms
  • Warp/Home/Spawn/RTP плагины
  • и другие обычные плагины

Также был самописный WaypointHotfix, который пытался блокировать waypoint-пакеты. Он уменьшал количество вылетов, но полностью проблему не решал. Есть подозрение, что такой подход может сам создавать рассинхрон, если блокируется TRACK, а UPDATE проходит.
Суть проблемы
Когда gamerule locatorBar=true, особенно после:
  • /warp
  • /home
  • /spawn
  • /rtp
  • /tpaccept
  • /tp
  • смены мира
  • respawn
  • join
  • elytra / резкого перемещения

начинается сильный поток ClientboundTrackedWaypointPacket.

После этого часть игроков получает disconnect.

Серверный лог часто показывает просто:
<player> lost connection: Disconnected
или на Velocity:
Connection reset by peer
В вашем подключении произошла внутренняя ошибка
Но клиентский лог показывает настоящую причину.
Фрагмент из latest.log клиента:
[Render thread/WARN]: Unsupported Waypoint update operation: class net.minecraft.class_11200$class_11201


[Render thread/ERROR]: Failed to handle packet class_11173[operation=UPDATE, waypoint=net.minecraft.class_11200$class_11201@139422ca], disconnecting


java.lang.NullPointerException: Cannot invoke "net.minecraft.class_11200.method_70766(net.minecraft.class_11200)" because the return value of "java.util.Map.get(Object)" is null
[Render thread/WARN]: Client disconnected with reason: Ошибка сетевого протокола

По смыслу это выглядит так:

Клиент получил waypoint UPDATE

Клиент попытался найти этот waypoint в Map

Map.get(...) вернул null

Клиент получил Network Protocol Error

Disconnect

То есть клиент получает UPDATE для waypoint, которого у него нет. Либо TRACK до клиента не дошёл, либо waypoint уже был UNTRACKed/очищен после телепорта или смены мира.
На Velocity в этот момент обычно видно только reset:
Exception caught while decoding frame for /<ip>:<port>
io.netty.channel.unix.Errors$NativeIoException: recvAddress(..) failed with error(-104): Connection reset by peer
[connected player] <player> has disconnected: В вашем подключении произошла внутренняя ошибка.е
если нужны будут подробные логи - скину
 
GPT-4o
Привет!

Проблема, с которой вы столкнулись, действительно выглядит как рассинхронизация между клиентом и сервером относительно waypoint'ов. Вот несколько рекомендаций, которые могут помочь в диагностике и исправлении ситуации:

1. Проверка плагинов:
- Убедитесь, что ни один из плагинов не вмешивается в обработку waypoint'ов. Особенно это касается плагинов, которые работают с сетевыми пакетами, таких как packetevents и Spartan. Попробуйте временно отключить их и проверьте, сохраняется ли проблема.

2. Обновление версии Paper:
- Попробуйте обновить проблемный backend до более новой версии Paper, если такая доступна. Иногда исправления ошибок могут быть включены в новые сборки.

3. Логи и отладка:
- Включите детализированное логирование для Velocity и Paper. Это может помочь выявить, какие пакеты отправляются и в каком порядке, что может помочь в диагностике проблемы.

4. Обработка waypoint'ов:
- Если у вас есть возможность, попробуйте изменить логику обработки waypoint'ов в вашем самописном WaypointHotfix. Возможно, стоит добавить дополнительные проверки на наличие waypoint'ов перед их обновлением или отправкой обновлений.

5. Синхронизация состояний:
- Убедитесь, что состояние waypoint'ов синхронизируется между клиентом и сервером корректно. Возможно, стоит реализовать дополнительную логику для обработки случаев, когда клиент не успевает обработать TRACK перед получением UPDATE.

6. Тестирование:
- Попробуйте создать тестовый сервер с минимальным набором плагинов и настройками, чтобы воспроизвести проблему. Это может помочь изолировать причину.

7. Обратная связь от сообщества:
- Поскольку проблема может быть известна другим, попробуйте обратиться к сообществу Paper или Velocity для получения дополнительных советов или патчей.

Если после выполнения всех этих шагов проблема сохраняется, возможно, стоит рассмотреть возможность обращения к разработчикам Paper или Velocity с подробным описанием проблемы и собранными логами.

Если вам нужны дополнительные примеры кода или конфигурации, дайте знать!
 

Похожие темы на Black-Minecraft.com

ВерхНиз