Skip to content

feat: support Minecraft 26.3 (protocol 777) - #12

Merged
TypeThe0ry merged 10 commits into
mainfrom
claude/relaxed-pascal-9021u3
Oct 2, 2026
Merged

TypeThe0ry merged 10 commits into
mainfrom
claude/relaxed-pascal-9021u3

Conversation

@TypeThe0ry

@TypeThe0ry TypeThe0ry commented Oct 2, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Add a modern-26_3 adapter built against MCProtocolLib 26.3-SNAPSHOT (protocol 777), registered in ProtocolVersion, TransportRegistry, ProtocolSmokeMain, the root shadow/check tasks and settings.gradle.kts.
  • 26.3 protocol changes are isolated in a per-version ModernPacketCompat (1.21.11 / 26.1.2 / 26.2 compile src/compat-pre26_3 and send exactly what they did before):
    • ServerboundSwingPacket(Hand) → ServerboundPunchPacket.INSTANCE.
    • ServerboundAcceptTeleportationPacket echoes the resolved x/y/z/yRot/xRot.
    • Every position packet is followed by ServerboundClientTickEndPacket; 26.3 kicks clients that send two position packets in one tick ("Invalid move player packet received").
  • Relocate org.geysermc.adventure (MCPL text-serializer-nbt) per adapter. Unrelocated, only the 26.2 copy survived the merged JAR and the 26.3 adapter hit NoSuchMethodError on text packets.

CI

  • 26.3 added to protocol-contract and network-integration matrices.
  • Integration selects Velocity per version: 26.3 runs on Velocity 4.2.1-SNAPSHOT / Java 25 (Velocity 3.x stops at 26.2).
  • Paper download falls back to the newest build when no STABLE build exists (26.3 has only BETA builds).
  • Disposable Paper servers set white-list=false (26.3 defaults it to true).
  • AuthMe release lookup uses the workflow token (avoids GitHub API rate-limit 403s).
  • Timeouts print the log head and lobby console.
  • New manually dispatched build-patch-release.yml for non-major releases; docs/releases/v3.0.9.md added.

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
TypeThe0ry force-pushed the claude/relaxed-pascal-9021u3 branch from 9090e9d to 877ca34 Compare October 2, 2026 15:46
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
TypeThe0ry marked this pull request as ready for review October 2, 2026 16:29
@TypeThe0ry
TypeThe0ry merged commit b79b5e0 into main Oct 2, 2026
22 checks passed
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.

1 participant