Skip to content

Conversation

@Tmpod
Copy link
Contributor

@Tmpod Tmpod commented Dec 6, 2025

This was causing connection crashes for versions ≤1.21.4, since the 1.21.5.→1.21.4 step rewrites all text components as strings, and thus parses the NBT.
Since sprites and other object components were not being filtered on signs in the 1.21.9→1.21.7 step, the latter step was failing to properly read the NBT structure and thus crashing the player's connection.

The fix was done by lifting the sign logic in BlockItemPacketRewriter1_21_5 and adapting it into BlockItemPacketRewriter1_21_9. All filtering is still delegated to the appropriate ComponentRewriter, so required code change was rather small.

Closes #1146.

… step

This was causing connection crashes for versions ≤1.21.4, since the
1.21.5.→1.21.4 step rewrites all text components as strings, and thus
parses the NBT.
Since sprites and other object components were not being filtered on
signs in the 1.21.9→1.21.7 step (despite being correctly handled
everywhere else since ViaVersion#1108), the latter step was failing to properly
read the NBT structure and thus crashing the player's connection.

The fix was done by lifting the sign logic in
`BlockItemPacketRewriter1_21_5` and adapting it into
`BlockItemPacketRewriter1_21_9`. All filtering is still delegated to the
appropriate `ComponentRewriter`, so required code change was rather
small.
Copy link
Member

@kennytv kennytv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@kennytv kennytv merged commit d273b06 into ViaVersion:master Dec 6, 2025
1 check passed
Tmpod added a commit to Tmpod/ViaBackwards that referenced this pull request Jan 8, 2026
… step

This was causing connection crashes for versions ≤1.21.4, since the
1.21.5.→1.21.4 step rewrites all text components as strings, and thus
parses the NBT.
Since custom click events (and dialogs) were not being filtered on
signs in the 1.21.6→1.21.5 step (despite being correctly handled
everywhere else since ViaVersion#1108), the latter step was failing to properly
read the NBT structure and thus crashing the player's connection.

The fix was done by lifting the sign logic in
`BlockItemPacketRewriter1_21_5` and adapting it into
`BlockItemPacketRewriter1_21_6`. All filtering is still delegated to the
appropriate `ComponentRewriter`, so required code change was rather
small.

This commit is almost identical to my other fix related to sprites in
the 1.21.9→1.21.7 step. See commit d273b06 (e3a4761) and PR ViaVersion#1147.

Fixes ViaVersion#1172
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.

Signs with sprites and object text components kick players in ≤1.21.4

2 participants