Repository navigation
Fix cat variant metadata translation - #493
Open
guhlutions wants to merge 1 commit into
Open
guhlutions wants to merge 1 commit into
guhlutions wants to merge 1 commit into
Conversation
Resolve Bedrock coat variants against the Java cat registry and send them with the dedicated cat variant serializer.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
A Java client disconnects when it receives a Bedrock cat's coat variant. ViaBedrock writes the cat's
VARIANTwith the generic VarInt serializer, and the client rejects the resulting Integer at the cat-variant metadata index. This was observed with Java 26.3 and 1.21.4 on ViaProxy 3.4.15-SNAPSHOT connected to Bedrock 1.26.60.Fix
Map all 11 vanilla Bedrock coat IDs to their Java variant keys, resolve those keys in the cat registry sent for the session, and encode the result with
catVariantType. Unknown Bedrock coat IDs use Java's defaultminecraft:blackvariant.The source for the Bedrock IDs is Mojang's vanilla cat definition.
Verification
./gradlew buildpassed, including Checkstyle.