Skip to content

feat: support Minecraft 26.3 and fix Text Display orientation - #39

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 TextDisplayShapes for Minecraft 26.3 and fix line/face orientation across JOML versions.

  • Update Paper/Spigot APIs, PacketEvents 2.14.0, Adventure 5.2.0 mediation, and JDK 25 build configuration for 26.3.
  • Replace Quaternionf.lookAlong(...).conjugate() with a quaternion constructed from the explicit X/Y/Z basis in TextDisplayUtil. This covers lines, parallelograms, and triangles.
  • Add geometry regression tests for both line directions, double-sided face winding, and triangle vertices.

Root cause

Mojang's 26.2 version manifest declares JOML 1.10.8; its 26.3 manifest declares 1.10.9. JOML 1.10.9 explicitly fixes Quaternion.lookAlong(). The former orientation calculation produced different quaternions under those versions, mirroring a Text Display background away from its supplied vertices in 26.3. Reversing a double-sided line could extend it by an additional full line length. Building the orthonormal basis directly removes that version-dependent behavior.

The vanilla 26.2 and 26.3 DisplayRenderer$TextDisplayRenderer bytecode retains the same Text Display transformation order and background quad dimensions. Minecraft 26.3 changes the background shader path and the Improved Transparency algorithm, but those are not the coordinate error itself.

Verification

  • mvn -B -q clean install: all modules and API/packet tests pass.
  • Reconstructed Text Display backgrounds reach the requested line endpoints and face vertices in the regression tests.
  • JOML 1.10.8 and 1.10.9 runtime checks both map a reverse-Z line back to its actual endpoints.
  • Companion WorldEditDisplay PR #68 pins this commit and validates 150 line/fill Text Displays against selection bounds on both Paper 1.21.11 (JOML 1.10.8) and Paper 26.3 (JOML 1.10.9).

Related

The WorldEditDisplay PR currently consumes this commit through JitPack until TextDisplayShapes publishes a new release. Please merge/release this fix before replacing that temporary pin with a release version. No vanilla 26.3 visual screenshot comparison has been automated; the packet geometry is verified.

- Bump paper-api to 26.3.build.41-alpha and spigot-api to
  26.3-R0.1-SNAPSHOT for the paper, spigot, and packet modules.
- Bump PacketEvents to 2.14.0, the first release that ships the 26.3
  protocol, in the packet module and the integration fixture.
- Pin Adventure 5.2.0 on the Paper compile classpaths. PacketEvents
  declares Adventure 4.26.1 before paper-api, so mediation previously
  produced a mixed 4.x/5.x classpath and compilation failed on
  net.kyori.adventure.text.object.ObjectContentsLike.
- Build on JDK 25 in CI and JitPack, because the 26.3 APIs are Java 25
  class files that javac 21 cannot read. The published modules keep
  Java 17 bytecode, so the Text Display floor is unchanged.
- Ship PacketEvents 2.14.0 in the Mineflayer harness and document the
  26.3 dependency matrix in the README.
@twme-ai twme-ai changed the title feat: support Minecraft 26.3 feat: support Minecraft 26.3 and fix Text Display orientation Sep 26, 2026
@twme-ai
twme-ai merged commit f67c420 into master Sep 26, 2026
4 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