Skip to content

Route plugin messages to the in-flight connection while no server is connected - #1907

Open
SendableMetatype wants to merge 1 commit into
PaperMC:dev/4.0.0from
SendableMetatype:fix/plugin-message-join-window
Open

SendableMetatype wants to merge 1 commit into
PaperMC:dev/4.0.0from
SendableMetatype:fix/plugin-message-join-window

Conversation

@SendableMetatype

Copy link
Copy Markdown

When a player joins or switches servers, getConnectedServer() returns null until TransitionSessionHandler sets the new connection. During that time, ClientPlaySessionHandler.handle(PluginMessagePacket) uses getConnectionInFlight() only for the legacy Forge handshake channel. Messages on every other channel are dropped without a log message.

This change uses the fallback for all channels. Forge handshake messages take the same path as before. The existing checks still apply: Velocity discards the message if the backend is not in the PLAY state, and queues it if the connection phases are not complete.

Fixes #1766

@WouterGritter WouterGritter mentioned this pull request Oct 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Plugin messages silently dropped during player join when getConnectedServer() is null

1 participant