Skip to content

ProtocolLib2PacketEvents v1.0.10 — Pre-login Channel Fix

Pre-release
Pre-release

Choose a tag to compare

@Namnarak Namnarak released this 12 Oct 18:31
7727b5a

ProtocolLib2PacketEvents v1.0.10 — Late Pre-login Channel Binding

Pre-release: live Java Premium login regression validation still outstanding.

Reproduction

After deploying v1.0.9 on Leaf 1.21.11, a legitimate Java account's client was disconnected. FastLoginPlus logged Player NamKrub disconnected during session verification, aborting at 01:21:34 and 01:24:23 on 2026-10-13; one login timed out and another disconnected. The prior v1.0.8 client reported Received unknown packet id 49.

Fix

  • Stop requiring the native Minecraft packet_handler to exist at the exact moment PacketEvents notifies ProtocolLib2PacketEvents about LOGIN_START. A live Netty Channel is sufficient for binding the generated TemporaryPlayer to its actual connection.
  • Refresh that binding every time FastLoginPlus calls TemporaryPlayerFactory.getInjectorFromPlayer() during async Mojang session verification, so a late-installed native net.minecraft.network.Connection becomes visible for AES initialization.
  • Never bind a disconnected/non-Netty channel; keep all Mojang Premium authentication checks in FastLoginPlus and preserve previous pre-login/PacketEvents wrapper safety fixes. Do not enable cracked login fallback or bypass authentication.

Verification

  • Commit: 7727b5a3505afe60caa5b25be6fb1e4778a37fc4
  • Main CI: https://github.com/CyoriaSMP-Team/ProtocolLib2PacketEvents/actions/runs/38291091412 — passed.
  • 30 local Maven tests, 0 failures, 0 errors, 1 skipped. Includes a Netty EmbeddedChannel / PacketEvents User regression test that verifies early Channel binding and later native handler association.
  • Production: MCSManager graceful restart 2026-10-13. Leaf booted in 76.549 seconds; PacketEvents 2.13.0 bridged 437 packet types, FastLoginPlus 0.7.0 / AuthMe 6.0.1 enabled; CyoriaCore 3.0.5 / CYC 8/8 enabled. AuthMe database 91 accounts, quick_check=ok.

Do not mark this stable yet: A real Java Premium client must successfully join the server with a verified Mojang session. No successful premium login had been verified when the release was created. If the problem persists, use the exact new error/time and server log to isolate the remaining pre-login packet flow. Do not disable Premium verification as a workaround.

Rollback v1.0.9, FastLoginPlus/AuthMe config backups and AuthMe DB snapshot remain at /home/namkrub-home-server/Projects/Minecraft/P2P-LateLogin-Fix-20261013/rollback/. Restart Minecraft via MCSManager for packet transport changes; Bukkit /reload is not safe for this plug-in.