Repository navigation
feat: support Minecraft 26.3 (protocol 777) - #12
Merged
Merged
Conversation
Add a modern-26_3 adapter built against MCProtocolLib 26.3-SNAPSHOT. 26.3 replaced the serverbound swing packet with a hand-less punch packet and extended teleport acknowledgements with the resolved position, so those packets now come from a per-version ModernPacketCompat class.
Paper has no stable 26.3 build yet, so the 26.3 network integration job failed while downloading the server. Prefer STABLE and otherwise use the newest build of any channel, logging a warning.
TypeThe0ry
force-pushed
the
claude/relaxed-pascal-9021u3
branch
from
October 2, 2026 15:46
9090e9d to
877ca34
Compare
Velocity 3.x only supports up to 26.2 and rejected the 26.3 bot with outdated_client. Velocity 4 adds 26.3 (protocol 777) and requires Java 25, so the integration matrix now selects the Velocity version and its Java per Minecraft version.
MCProtocolLib bundles org.geysermc.adventure (text-serializer-nbt) in 26.2 and 26.3. It was not relocated, so the merged plugin JAR kept only the 26.2 copy, linked against the 26.2 Adventure classes, and the 26.3 adapter failed with NoSuchMethodError on every text component packet.
Reconnect loops push the first failure out of the dumped tail, which hid why the 26.3 bot first failed to join.
Patch releases were built and uploaded by hand. The new workflow takes a version, runs the full quality gate, builds the shaded JARs and publishes them with docs/releases/v<version>.md as notes. Major releases keep the tag-triggered workflow. Also add the v3.0.9 release notes.
Minecraft 26.3 generates server.properties with white-list=true, so the 26.3 lobby rejected every bot and the retries then tripped AuthMe AntiBot.
Minecraft 26.3 disconnects a client that sends a second position packet before client_tick_end with "Invalid move player packet received". The bot acknowledged a teleport and immediately sent its position, and AuthMe's login teleport added more, so 26.3 bots were kicked from the lobby.
Unauthenticated GitHub API calls hit the shared runner rate limit and returned 403, which then surfaced as a JSON decode traceback. Use GITHUB_TOKEN when present and fail with a clear message on HTTP errors.
TypeThe0ry
marked this pull request as ready for review
October 2, 2026 16:29
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.
Summary
modern-26_3adapter built against MCProtocolLib26.3-SNAPSHOT(protocol 777), registered inProtocolVersion,TransportRegistry,ProtocolSmokeMain, the root shadow/check tasks andsettings.gradle.kts.ModernPacketCompat(1.21.11 / 26.1.2 / 26.2 compilesrc/compat-pre26_3and send exactly what they did before):ServerboundSwingPacket(Hand)→ServerboundPunchPacket.INSTANCE.ServerboundAcceptTeleportationPacketechoes the resolved x/y/z/yRot/xRot.ServerboundClientTickEndPacket; 26.3 kicks clients that send two position packets in one tick ("Invalid move player packet received").org.geysermc.adventure(MCPL text-serializer-nbt) per adapter. Unrelocated, only the 26.2 copy survived the merged JAR and the 26.3 adapter hitNoSuchMethodErroron text packets.CI
white-list=false(26.3 defaults it to true).build-patch-release.ymlfor non-major releases;docs/releases/v3.0.9.mdadded.