Repository navigation
fix(protocol): repair 26.60 joins and restore migration fixes - #468
Closed
AlexProgrammerDE wants to merge 7 commits into
Closed
AlexProgrammerDE wants to merge 7 commits into
AlexProgrammerDE wants to merge 7 commits into
Conversation
Read device identity after passenger data and reuse it in the Java profile. The 26.60 update consumed both fields a second time and disconnected clients as soon as another player spawned. Exercise the registered ADD_PLAYER handler with real wire data, both passenger states, and empty and populated device IDs. Add the test runtime without duplicating compile-only dependency versions.
NetworkSettings uses the uint16 no-compression value 65535, while frame headers use uint8 value 255. Preserve the generated enum value and translate only the frame header. Consume a retained payload slice so Netty does not decode the same payload again as a compression header. Separate regressions cover negotiation and frame consumption.
The 26.60 palette keeps block-state version 1.21.60.33. Its added-properties schema therefore also runs on current redstone, fire, and chorus states. Add missing properties without replacing supplied values. Verify equal-version states, legacy defaults, distinct fire and chorus domains, and repeated upgrades.
The 26.60 regeneration left the bundled packs without biome, fog, or render-controller definitions. Restore the 37 affected archives from the validated 26.60 source snapshot in PR ViaVersionAddons#465. These archives restore 344 biome files, 249 fog files, and 214 controller files. Their source is the official 1.26.60.5 GDK package recorded in that draft. Preserve the manifests, licenses, and language data. Exercise the actual definition loaders against bundled archives.
The 26.60 dimension packet supplies cloud height and visibility, but the update discarded both fields. Retain them with validated minimum-Y and height-range values and project them through Java environment attributes. Keep the existing Overworld override boundary and preserve other dimension attributes. Transparent cloud color survives the Java day timeline multiplier. Six regressions cover packet boundaries, invalid ranges, overflow, and projection.
Protocol 2225 omits declared packets from its packet-ID summary enum. Supplement it from same-protocol packet schemas and reject conflicting IDs or mixed protocol input. Keep unsupported seating and signed audio explicitly canceled. Resource-pack responses carry a Cereal variant index, distinct from the enum value. Move that conversion into a shared codec so enum regeneration preserves the response layout. Restore focused wire and generator regressions from the version draft.
Protocol 2225 moves PlayFab identity out of serialized skin data and into player-list entries. Retain the received identity in the Java profile instead of discarding the only remaining source of that property.
Collaborator
|
Added manually |
This was referenced Oct 29, 2026
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.
Follow-up to #466, targeting
update/r26u6.Joining a populated server fails in
ADD_PLAYERbecause the update reads the device ID and build platform twice. Read those fields once and reuse them in the Java profile.The comparison with #465 also exposed several missing migration fixes:
The attack, interaction, swing, and full-dimension biome fixes already present in this branch remain intact. The reordered block mappings are semantically identical, so this PR leaves them unchanged.
Validation:
./gradlew --no-configuration-cache build validateMappingspasses, including all Checkstyle tasks and 19 tests.The reproduced player failure matches the screenshot's end-of-buffer string read. I did not repeat a live
minevale.dejoin. Block seating, signed audio playback, locator rendering, and full native visual parity remain outside this follow-up.