Update SubClientLoginSerializer_v291.java #215
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
After investigating why Spilt Screen functionality was not functioning on GeyserMC, I discovered that the SubClientLogin message received from the Bedrock client could not be deserialize by SubClientLoginSerializer_v291.
The original code expected a JSONArray off the wire, however we were actually getting a JSONObject containing JSONArray when you get "chain".
Further investigation I discovered that this mirrors precisely what the LoginSerializer_v291, the only exception is that SubClientLogin message does not start with the protocol version.
I have updated the serialize method to mirror that of deserialize.
With these changes plus a some additional in GeyserMC works.