Skip to content

feat: support Minecraft 26.3 and fix selection geometry - #68

Merged
twme-ai merged 3 commits into
masterfrom
feat/minecraft-26.3
Sep 26, 2026
Merged

twme-ai merged 3 commits into
masterfrom
feat/minecraft-26.3

Conversation

@twme-ai

@twme-ai twme-ai commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Upgrade WorldEditDisplay for Minecraft 26.3 and fix the displaced selection lines/fill faces shown with vanilla 26.3 and Improved Transparency.

  • Update Paper/Spigot APIs, PacketEvents 2.14.0, Adventure mediation, and JDK 25 build configuration for 26.3.
  • Consume the fixed TextDisplayShapes PR #39 at immutable JitPack commit 79f954c until the library publishes a release.
  • Extend the Mineflayer integration test to enable cuboid fill, reconstruct each Text Display background from packet transformation metadata, and assert that all corners stay within the selected bounds.

Cause, not a changed vanilla transform

I decompiled Mojang's official 26.2 and 26.3 client jars and compared DisplayRenderer$TextDisplayRenderer. The Text Display transform order and one-space background quad coordinates are unchanged. Minecraft 26.3 changes the text-background shader path and Improved Transparency rendering, but the selection displacement is a geometry error in TextDisplayShapes. The shader/transparency change may make it more visible; that causal link has not been proven.

The concrete compatibility change is JOML: Mojang's 26.2 version manifest uses 1.10.8, whereas its 26.3 manifest uses 1.10.9. JOML 1.10.9 fixed Quaternion.lookAlong(). TextDisplayShapes relied on its old result when constructing line and face rotations. On the new runtime, some quaternions mirror the background away from the requested endpoints; double-sided lines can extend a full edge length outside the selection. TextDisplayShapes PR #39 now constructs the X/Y/Z basis explicitly so the same geometry is produced on both JOML versions.

Verification

  • mvn -B -q clean package (Paper) and mvn -B -q clean package -P spigot: 51 tests pass in each profile.
  • ./integration/mineflayer/run-e2e.sh on Paper 1.21.11 / JOML 1.10.8: full CUI/share/retained-renderer flow passes, and all 150 line/fill Text Display backgrounds fit the selection.
  • Paper 26.3 build 41 / JOML 1.10.9: full server/CUI/share smoke flow passes using a 26.1 Mineflayer client bridged through ViaVersion/ViaBackwards; a separate packet-geometry check confirms all 150 line/fill backgrounds fit the selection.
  • JitPack successfully built and served textdisplayshape-packet:79f954c from the original repository.

The 26.3 test uses a bridged client only because Mineflayer does not yet speak 26.3. This verifies the 26.3 server's packets and transformations, not a vanilla 26.3 screenshot with Improved Transparency enabled. A human visual check with that setting remains useful before release.

Merge note

This PR depends on TextDisplayShapes PR #39. Once its fix is released, replace the temporary JitPack commit pin with that release coordinate.

- Bump paper-api to 26.3.build.41-alpha and spigot-api to
  26.3-R0.1-SNAPSHOT.
- Bump PacketEvents to 2.14.0, the first release that ships the 26.3
  protocol.
- Pin Adventure 5.2.0 in the Paper profile. Paper 26.3 builds against
  Adventure 5.2.0 while PacketEvents still declares 4.26.1 before
  paper-api, so mediation previously failed compilation on
  net.kyori.adventure.text.object.ObjectContentsLike. Align the shaded
  Adventure of the Spigot profile with PacketEvents at 4.26.1.
- Build on JDK 25 in CI, because the 26.3 APIs are Java 25 class files.
  The artifact keeps Java 17 bytecode, so the Paper 1.19.4+ and Spigot
  1.20+ ranges are unchanged.
- Ship PacketEvents 2.14.0 in the Mineflayer harness and document the
  26.3 support range and build JDK requirement in both README languages.
@twme-ai twme-ai changed the title feat: support Minecraft 26.3 feat: support Minecraft 26.3 and fix selection geometry Sep 26, 2026
@twme-ai
twme-ai merged commit e37712a into master Sep 26, 2026
1 check 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