mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2026-10-25 21:40:05 +00:00
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:
1 parent
e1514503f6
commit
8a18b6ff8b
17 files changed
+1726
-59
No files matched your search
+9
-6
@@ -34,7 +34,7 @@ plugins {
|
||||
}
|
||||
|
||||
group = "com.volmit"
|
||||
version = "3.9.2-1.20.1-1.21.11"
|
||||
version = "3.9.2-1.20.1-26.2"
|
||||
|
||||
apply<ApiGenerator>()
|
||||
|
||||
@@ -64,6 +64,7 @@ val color = "truecolor"
|
||||
val errorReporting = "true" == findProperty("errorReporting")
|
||||
|
||||
val nmsBindings = mapOf(
|
||||
"v26_1_R1" to "26.1.2.build.74-stable",
|
||||
"v1_21_R7" to "1.21.11-R0.1-SNAPSHOT",
|
||||
"v1_21_R6" to "1.21.10-R0.1-SNAPSHOT",
|
||||
"v1_21_R5" to "1.21.8-R0.1-SNAPSHOT",
|
||||
@@ -76,7 +77,9 @@ val nmsBindings = mapOf(
|
||||
"v1_20_R2" to "1.20.2-R0.1-SNAPSHOT",
|
||||
"v1_20_R1" to "1.20.1-R0.1-SNAPSHOT",
|
||||
)
|
||||
val jvmVersion = mapOf<String, Int>()
|
||||
val jvmVersion = mapOf("v26_1_R1" to 25)
|
||||
// From 26.1 on the server is not obfuscated, so these bindings compile against Paper's dev bundle as-is.
|
||||
val userDevBindings = setOf("v26_1_R1")
|
||||
nmsBindings.forEach { (key, value) ->
|
||||
project(":nms:$key") {
|
||||
apply<JavaPlugin>()
|
||||
@@ -84,7 +87,7 @@ nmsBindings.forEach { (key, value) ->
|
||||
nmsBinding {
|
||||
jvm = jvmVersion.getOrDefault(key, 21)
|
||||
version = value
|
||||
type = NMSBinding.Type.DIRECT
|
||||
type = if (key in userDevBindings) NMSBinding.Type.USER_DEV else NMSBinding.Type.DIRECT
|
||||
}
|
||||
|
||||
dependencies {
|
||||
@@ -96,7 +99,7 @@ nmsBindings.forEach { (key, value) ->
|
||||
|
||||
tasks.register<RunServer>("runServer-$key") {
|
||||
group = "servers"
|
||||
minecraftVersion(value.split("-")[0])
|
||||
minecraftVersion(value.substringBefore("-").substringBefore(".build"))
|
||||
minHeapSize = serverMinHeap
|
||||
maxHeapSize = serverMaxHeap
|
||||
pluginJars(tasks.jar.flatMap { it.archiveFile })
|
||||
@@ -115,7 +118,7 @@ val included: Configuration by configurations.creating
|
||||
val jarJar: Configuration by configurations.creating
|
||||
dependencies {
|
||||
for (key in nmsBindings.keys) {
|
||||
included(project(":nms:$key", "reobf"))
|
||||
included(project(":nms:$key", if (key in userDevBindings) "runtimeElements" else "reobf"))
|
||||
}
|
||||
included(project(":core", "shadow"))
|
||||
jarJar(project(":core:agent"))
|
||||
@@ -190,7 +193,7 @@ allprojects {
|
||||
|
||||
java {
|
||||
toolchain {
|
||||
languageVersion.set(JavaLanguageVersion.of(21))
|
||||
languageVersion.set(JavaLanguageVersion.of(jvmVersion.getOrDefault(name, 21)))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user