ProtocolLib is now compileOnly to avoid shading/packaging ProtocolLib into SideGate and prevent classloader conflicts.
Login-state injection path was adjusted to prefer stable accept states (READY_TO_ACCEPT, fallback ACCEPTED) to reduce non-premium login timeouts.
Defensive ProtocolLib runtime checks were added to avoid NullPointerException when ProtocolManager is temporarily unavailable.
Guest login injection now cancels login at START and immediately injects approved guests, with delayed fallback retained for packet-order edge cases.
Post-auth login pipeline now supports modern GameProfile method signatures (verifyLoginAndFinishConnectionSetup, startClientVerification, finishLoginAndWaitForClient) for newer Paper builds.
Fixed
Fixed startup failure where ProtocolLibrary.getProtocolManager() could be null and crash plugin enable/disable.
Fixed guest login flow instability causing repeated guest injection and disconnect timeout behavior in hybrid mode.
Fixed Invalid session/timeout on Paper 1.21.11 when guest login state advanced incompletely.
Compatibility
Server: Paper/Spigot/Purpur (Bukkit-compatible)
Tested: Paper 1.20.1, Spigot 1.20.1, Paper 1.21.11
Practical compatibility range: 1.20.1–1.21.11 (with ProtocolLib dev build recommended for 1.21.9+)
Java: 17+
Dependency: ProtocolLib 5.x+
Notes
For hybrid guest mode operation, set enforce-secure-profile=false in server.properties.