Support Minecraft 26.1.2 and 26.2

Adds the v26_1_R1 binding, which covers both versions. 26.x servers are
not obfuscated and need Java 25, so the build moves to Gradle 9.5.1 and
paperweight-userdev 2.0.0-beta.21, and the binding compiles against the
26.1.2 dev bundle with a Java 25 toolchain while everything else stays on
Java 21.

On 26.x every world is a dimension inside the main level, so the binding
provides DimensionWorldStorage:
- world folders resolve to <level>/dimensions/<namespace>/<key>
- data packs go to the level's datapacks folder
- Iris data in a pre-26.1 world folder is moved into the dimension
  before Paper imports the world and deletes the old folder
- "main=true" swaps the world in as the level's overworld instead of
  changing level-name

Also:
- INMS compares 1.x and 26.x versions in release order
- data pack formats 101 (26.1.2) and 107 (26.2), declared with
  min_format/max_format from format 82 on
- dimension types get the fields 26.1 added
- the Java safeguard accepts Java 25

Model used: Claude Opus 5.5
This commit is contained in:
piexel committed 2026-10-11 16:48:05 +02:00
1 parent e1514503f6
commit 8a18b6ff8b
17 files changed
+1726 -59

No files matched your search

+1
View File
@@ -23,6 +23,7 @@ rootProject.name = "Iris"
include(":core", ":core:agent")
include(
":nms:v26_1_R1",
":nms:v1_21_R7",
":nms:v1_21_R6",
":nms:v1_21_R5",