Skip to content

fix: support Paper 1.19.4 and skip degenerate render lines - #61

Merged
TWME-TW merged 1 commit into
masterfrom
fix/paper-compatibility-render-lines
Aug 12, 2026
Merged

fix: support Paper 1.19.4 and skip degenerate render lines#61
TWME-TW merged 1 commit into
masterfrom
fix/paper-compatibility-render-lines

Conversation

@twme-ai

@twme-ai twme-ai commented Aug 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • lower api-version to 1.19 so Paper 1.19.4 can load the plugin
  • compile WorldEditDisplay to Java 17 bytecode and document server-specific Java requirements
  • skip non-finite and sub-millimeter line segments before TextDisplayShapes validation
  • add regression coverage for the plugin descriptor and line validation boundary

Context

The 2.4.0 compatibility matrix found three failures:

  1. Paper 1.19.4 rejected the plugin because api-version was 1.20.
  2. Paper 1.19.4/1.20 legacy remappers could not inspect Java 21 class files. The shaded dependency was fixed and published by fix: target Java 17 bytecode TextDisplayShapes#28.
  3. Cylinder tangent grids and ellipsoid pole rings generated zero-length lines, causing IllegalArgumentException: line endpoints must be distinct and partial renders.

The common renderLine boundary now uses the same squared-length threshold (1e-6) as TextDisplayShapes, which also protects other renderers from invalid generated geometry.

Verification

  • mvn clean package: 34 tests passed
  • clean Maven repository build against published TextDisplayShapes snapshot build 6
  • verified every class in the shaded JAR is class file major 61 or lower
  • exercised five CUI region types on the latest stable Paper build for all 21 released versions from 1.19.4 through 26.2
  • all 21 versions produced positive renderer/retained-line counts and client-side text_display spawn packets
  • no WED renderer, API-version, invalid-plugin, or legacy-remapper errors in the final logs

Paper versions tested: 1.19.4; 1.20, 1.20.1, 1.20.2, 1.20.4, 1.20.5, 1.20.6; 1.21, 1.21.1, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11; 26.1.1, 26.1.2, 26.2. The 26.2 client packet check used a 26.1.2 Mineflayer client through ViaVersion/ViaBackwards because minecraft-data does not yet ship a 26.2 registry; the Paper 26.2 server and WED execution were native.

@TWME-TW
TWME-TW merged commit 03baf4e into master Aug 12, 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.

2 participants