From 992ae692f8dcab02edba96308d30422f43f1961e Mon Sep 17 00:00:00 2001 From: JunkyDeveloper Date: Sun, 22 Feb 2026 04:37:04 +0100 Subject: [PATCH 1/8] Minecraft 26.1-snapshot-9 --- build.gradle | 42 +++++++------------ gradle.properties | 10 ++--- gradle/wrapper/gradle-wrapper.properties | 2 +- .../steel-extractor.client.mixins.json | 2 +- .../com/steelextractor/extractors/Classes.kt | 8 ++-- .../com/steelextractor/extractors/Fluids.kt | 6 +-- .../com/steelextractor/extractors/Items.kt | 6 ++- src/main/resources/fabric.mod.json | 4 +- .../resources/steel-extractor.mixins.json | 2 +- 9 files changed, 35 insertions(+), 47 deletions(-) diff --git a/build.gradle b/build.gradle index 25137fa..930ff22 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ plugins { - id 'fabric-loom' version "${loom_version}" + id 'net.fabricmc.fabric-loom' version "${loom_version}" id 'maven-publish' - id "org.jetbrains.kotlin.jvm" version "2.2.20" + id "org.jetbrains.kotlin.jvm" version "2.3.10" } version = project.mod_version @@ -11,12 +11,6 @@ base { archivesName = project.archives_base_name } -repositories { - maven { - name = 'ParchmentMC' - url = 'https://maven.parchmentmc.org' - } -} loom { splitEnvironmentSourceSets() @@ -39,15 +33,11 @@ fabricApi { dependencies { // To change the versions see the gradle.properties file minecraft "com.mojang:minecraft:${project.minecraft_version}" - mappings loom.layered() { - officialMojangMappings() - parchment("org.parchmentmc.data:parchment-1.21.10:2025.10.12@zip") - } - modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" + implementation "net.fabricmc:fabric-loader:${project.loader_version}" // Fabric API. This is technically optional, but you probably want it anyway. - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" - modImplementation "net.fabricmc:fabric-language-kotlin:${project.fabric_kotlin_version}" + implementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + implementation "net.fabricmc:fabric-language-kotlin:${project.fabric_kotlin_version}" } processResources { @@ -58,24 +48,20 @@ processResources { } } -tasks.withType(JavaCompile).configureEach { - it.options.release = 21 -} - -tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { - kotlinOptions { - jvmTarget = 21 - } -} - java { + toolchain { + languageVersion = JavaLanguageVersion.of(25) + } // Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task // if it is present. // If you remove this line, sources will not be generated. withSourcesJar() +} - sourceCompatibility = JavaVersion.VERSION_21 - targetCompatibility = JavaVersion.VERSION_21 +tasks.withType(JavaExec).configureEach { + executable = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(25) + }.get().executablePath.asFile.absolutePath } jar { @@ -102,4 +88,4 @@ publishing { // The repositories here will be used for publishing your artifact, not for // retrieving dependencies. } -} \ No newline at end of file +} diff --git a/gradle.properties b/gradle.properties index c7da9d0..14b1de3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,10 +7,10 @@ org.gradle.configuration-cache=false # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.21.11 -loader_version=0.18.2 -loom_version=1.14-SNAPSHOT -fabric_kotlin_version=1.13.7+kotlin.2.2.21 +minecraft_version=26.1-snapshot-9 +loader_version=0.18.4 +loom_version=1.16.0-alpha.6 +fabric_kotlin_version=1.13.9+kotlin.2.3.10 # Mod Properties mod_version=1.0.0 @@ -18,4 +18,4 @@ maven_group=com.steelextractor archives_base_name=steel-extractor # Dependencies -fabric_version=0.139.4+1.21.11 \ No newline at end of file +fabric_version=0.143.5+26.1 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 23449a2..37f78a6 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/src/client/resources/steel-extractor.client.mixins.json b/src/client/resources/steel-extractor.client.mixins.json index 3d26cdd..47589b7 100644 --- a/src/client/resources/steel-extractor.client.mixins.json +++ b/src/client/resources/steel-extractor.client.mixins.json @@ -1,7 +1,7 @@ { "required": true, "package": "com.steelextractor.mixin.client", - "compatibilityLevel": "JAVA_21", + "compatibilityLevel": "JAVA_25", "client": [ "ExampleClientMixin" ], diff --git a/src/main/kotlin/com/steelextractor/extractors/Classes.kt b/src/main/kotlin/com/steelextractor/extractors/Classes.kt index 45748f6..e1f8bfd 100644 --- a/src/main/kotlin/com/steelextractor/extractors/Classes.kt +++ b/src/main/kotlin/com/steelextractor/extractors/Classes.kt @@ -63,18 +63,20 @@ class Classes : SteelExtractor.Extractor { val itemsJson = JsonArray() for (item in BuiltInRegistries.ITEM) { val itemJson = JsonObject() - val name = BuiltInRegistries.ITEM.getKey(item)?.path ?: "unknown" + val name = BuiltInRegistries.ITEM.getKey(item).path ?: "unknown" itemJson.addProperty("name", name) itemJson.addProperty("class", item.javaClass.simpleName) if (item is BlockItem) { - itemJson.addProperty("block", BuiltInRegistries.BLOCK.getKey(item.block)?.path) + itemJson.addProperty("block", BuiltInRegistries.BLOCK.getKey(item.block).path) } if (item is StandingAndWallBlockItem) { + val wallBlockField = StandingAndWallBlockItem::class.java.getDeclaredField("wallBlock") + wallBlockField.isAccessible = true itemJson.addProperty( "wallBlock", - BuiltInRegistries.BLOCK.getKey(item.javaClass.getField("wallBlock").get(item) as Block)?.path + BuiltInRegistries.BLOCK.getKey(wallBlockField.get(item) as Block).path ) } diff --git a/src/main/kotlin/com/steelextractor/extractors/Fluids.kt b/src/main/kotlin/com/steelextractor/extractors/Fluids.kt index 768c2dc..ceb2fb7 100644 --- a/src/main/kotlin/com/steelextractor/extractors/Fluids.kt +++ b/src/main/kotlin/com/steelextractor/extractors/Fluids.kt @@ -65,7 +65,6 @@ class Fluids : SteelExtractor.Extractor { } override fun extract(server: MinecraftServer): JsonElement { - val topLevelJson = JsonObject() val fluidsJson = JsonArray() val world = server.overworld() @@ -96,6 +95,7 @@ class Fluids : SteelExtractor.Extractor { val behaviorJson = JsonObject() behaviorJson.addProperty("is_empty", fluidState.isEmpty) + behaviorJson.addProperty("is_source", fluidState.isSource) // Explosion resistance (protected method) val explosionResistanceMethod = getProtectedMethod(fluid, "getExplosionResistance") @@ -182,8 +182,6 @@ class Fluids : SteelExtractor.Extractor { fluidsJson.add(fluidJson) } - topLevelJson.add("fluids", fluidsJson) - - return topLevelJson + return fluidsJson } } diff --git a/src/main/kotlin/com/steelextractor/extractors/Items.kt b/src/main/kotlin/com/steelextractor/extractors/Items.kt index bb48e41..b0022d3 100644 --- a/src/main/kotlin/com/steelextractor/extractors/Items.kt +++ b/src/main/kotlin/com/steelextractor/extractors/Items.kt @@ -64,9 +64,11 @@ class Items : SteelExtractor.Extractor { itemJson.addProperty("blockItem", BuiltInRegistries.BLOCK.getKey(item.block).path) } if (item is StandingAndWallBlockItem) { + val wallBlockField = StandingAndWallBlockItem::class.java.getDeclaredField("wallBlock") + wallBlockField.isAccessible = true itemJson.addProperty( - "standingAndWallBlockItem", - BuiltInRegistries.BLOCK.getKey(item.javaClass.getField("wallBlock").get(item) as Block).path + "wallBlock", + BuiltInRegistries.BLOCK.getKey(wallBlockField.get(item) as Block).path ) } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 6470b62..f614544 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -43,8 +43,8 @@ ], "depends": { "fabricloader": ">=0.17.3", - "minecraft": "~1.21.10", - "java": ">=21", + "minecraft": ">=26.1-alpha.9", + "java": ">=25", "fabric-api": "*", "fabric-language-kotlin": "*" }, diff --git a/src/main/resources/steel-extractor.mixins.json b/src/main/resources/steel-extractor.mixins.json index 490334d..eedc9ce 100644 --- a/src/main/resources/steel-extractor.mixins.json +++ b/src/main/resources/steel-extractor.mixins.json @@ -1,7 +1,7 @@ { "required": true, "package": "com.steelextractor.mixin", - "compatibilityLevel": "JAVA_21", + "compatibilityLevel": "JAVA_25", "mixins": [ "ExampleMixin" ], From acb6c4e85e20e5eab92bc8cbe2069802d68140a6 Mon Sep 17 00:00:00 2001 From: JunkyDeveloper Date: Wed, 25 Feb 2026 00:54:36 +0100 Subject: [PATCH 2/8] Minecraft 26.1-snapshot-10 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 14b1de3..189ca29 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ org.gradle.configuration-cache=false # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=26.1-snapshot-9 +minecraft_version=26.1-snapshot-10 loader_version=0.18.4 loom_version=1.16.0-alpha.6 fabric_kotlin_version=1.13.9+kotlin.2.3.10 From 2b419d6608ba1bbdacbff90a08b3ae27791d8bdb Mon Sep 17 00:00:00 2001 From: JunkyDeveloper Date: Wed, 4 Mar 2026 00:21:34 +0100 Subject: [PATCH 3/8] 26.1-snapshot-11 --- gradle.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle.properties b/gradle.properties index 189ca29..7d6d90d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,9 +7,9 @@ org.gradle.configuration-cache=false # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=26.1-snapshot-10 +minecraft_version=26.1-snapshot-11 loader_version=0.18.4 -loom_version=1.16.0-alpha.6 +loom_version=1.15-SNAPSHOT fabric_kotlin_version=1.13.9+kotlin.2.3.10 # Mod Properties @@ -18,4 +18,4 @@ maven_group=com.steelextractor archives_base_name=steel-extractor # Dependencies -fabric_version=0.143.5+26.1 \ No newline at end of file +fabric_version=0.143.10+26.1 From 59bbed434c8ee4324b2a526bbf291d49a54dfbb8 Mon Sep 17 00:00:00 2001 From: JunkyDeveloper Date: Sun, 15 Mar 2026 14:58:16 +0100 Subject: [PATCH 4/8] 26.1-pre-2 --- gradle.properties | 4 ++-- src/main/kotlin/com/steelextractor/extractors/PoiTypes.kt | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index 7d6d90d..badf0cc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ org.gradle.configuration-cache=false # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=26.1-snapshot-11 +minecraft_version=26.1-pre-2 loader_version=0.18.4 loom_version=1.15-SNAPSHOT fabric_kotlin_version=1.13.9+kotlin.2.3.10 @@ -18,4 +18,4 @@ maven_group=com.steelextractor archives_base_name=steel-extractor # Dependencies -fabric_version=0.143.10+26.1 +fabric_version=0.143.14+26.1 diff --git a/src/main/kotlin/com/steelextractor/extractors/PoiTypes.kt b/src/main/kotlin/com/steelextractor/extractors/PoiTypes.kt index 3bb0317..7135893 100644 --- a/src/main/kotlin/com/steelextractor/extractors/PoiTypes.kt +++ b/src/main/kotlin/com/steelextractor/extractors/PoiTypes.kt @@ -38,12 +38,12 @@ class PoiTypesExtractor : SteelExtractor.Extractor { stateJson.addProperty("block", blockKey?.path ?: "unknown") stateJson.addProperty("state_id", blockStateId) - if (blockState.values.isNotEmpty()) { + if (blockState.properties.isNotEmpty()) { val propsJson = JsonObject() - for ((prop, value) in blockState.values) { + for (prop in blockState.properties) { @Suppress("UNCHECKED_CAST") val propTyped = prop as net.minecraft.world.level.block.state.properties.Property> - propsJson.addProperty(prop.name, propTyped.getName(value as Comparable)) + propsJson.addProperty(prop.name, propTyped.getName(blockState.getValue(prop) as Comparable)) } stateJson.add("properties", propsJson) } From decb079ee143c0a8213965ecf03db509cb554ea0 Mon Sep 17 00:00:00 2001 From: JunkyDeveloper Date: Wed, 18 Mar 2026 19:00:22 +0100 Subject: [PATCH 5/8] 26.1-pre-3 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index badf0cc..124249f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ org.gradle.configuration-cache=false # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=26.1-pre-2 +minecraft_version=26.1-pre-3 loader_version=0.18.4 loom_version=1.15-SNAPSHOT fabric_kotlin_version=1.13.9+kotlin.2.3.10 From ad994480d3632966a1f240916ac57a808b4c29a3 Mon Sep 17 00:00:00 2001 From: JunkyDeveloper Date: Fri, 20 Mar 2026 01:48:59 +0100 Subject: [PATCH 6/8] 26.1-rc-1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 124249f..ab9fc0a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ org.gradle.configuration-cache=false # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=26.1-pre-3 +minecraft_version=26.1-rc-1 loader_version=0.18.4 loom_version=1.15-SNAPSHOT fabric_kotlin_version=1.13.9+kotlin.2.3.10 From 459be7575ed89c9704f4cfb5dc8fd43ada041b1d Mon Sep 17 00:00:00 2001 From: JunkyDeveloper Date: Sat, 21 Mar 2026 21:46:42 +0100 Subject: [PATCH 7/8] 26.1-rc-2 --- build.gradle | 2 +- gradle.properties | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 9b00ca2..d124fd5 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ plugins { id 'net.fabricmc.fabric-loom' version "${loom_version}" id 'maven-publish' - id "org.jetbrains.kotlin.jvm" version "2.3.10" + id "org.jetbrains.kotlin.jvm" version "2.3.20" } version = project.mod_version diff --git a/gradle.properties b/gradle.properties index ab9fc0a..8a03501 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ org.gradle.configuration-cache=false # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=26.1-rc-1 +minecraft_version=26.1-rc-2 loader_version=0.18.4 loom_version=1.15-SNAPSHOT fabric_kotlin_version=1.13.9+kotlin.2.3.10 @@ -18,4 +18,4 @@ maven_group=com.steelextractor archives_base_name=steel-extractor # Dependencies -fabric_version=0.143.14+26.1 +fabric_version=0.143.15+26.1 From ba8d3904d3e4bff6b44a60d7a247dde36ad7838e Mon Sep 17 00:00:00 2001 From: 4lve Date: Tue, 24 Mar 2026 22:13:21 +0100 Subject: [PATCH 8/8] fix --- gradle.properties | 4 ++-- .../steelextractor/mixin/AxeItemAccessor.java | 16 ++++++++++++++++ .../kotlin/com/steelextractor/SteelExtractor.kt | 2 +- .../com/steelextractor/extractors/Strippables.kt | 4 ++-- src/main/resources/steel-extractor.mixins.json | 3 ++- 5 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/steelextractor/mixin/AxeItemAccessor.java diff --git a/gradle.properties b/gradle.properties index 8a03501..1fcb02f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,7 +7,7 @@ org.gradle.configuration-cache=false # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=26.1-rc-2 +minecraft_version=26.1 loader_version=0.18.4 loom_version=1.15-SNAPSHOT fabric_kotlin_version=1.13.9+kotlin.2.3.10 @@ -18,4 +18,4 @@ maven_group=com.steelextractor archives_base_name=steel-extractor # Dependencies -fabric_version=0.143.15+26.1 +fabric_version=0.144.0+26.1 diff --git a/src/main/java/com/steelextractor/mixin/AxeItemAccessor.java b/src/main/java/com/steelextractor/mixin/AxeItemAccessor.java new file mode 100644 index 0000000..ef4b023 --- /dev/null +++ b/src/main/java/com/steelextractor/mixin/AxeItemAccessor.java @@ -0,0 +1,16 @@ +package com.steelextractor.mixin; + +import net.minecraft.world.item.AxeItem; +import net.minecraft.world.level.block.Block; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import java.util.Map; + +@Mixin(AxeItem.class) +public interface AxeItemAccessor { + @Accessor("STRIPPABLES") + static Map getStrippables() { + throw new AssertionError(); + } +} diff --git a/src/main/kotlin/com/steelextractor/SteelExtractor.kt b/src/main/kotlin/com/steelextractor/SteelExtractor.kt index f22b145..53da266 100644 --- a/src/main/kotlin/com/steelextractor/SteelExtractor.kt +++ b/src/main/kotlin/com/steelextractor/SteelExtractor.kt @@ -51,7 +51,7 @@ object SteelExtractor : ModInitializer { private val logger = LoggerFactory.getLogger("steel-extractor") /** Set to false to skip chunk generation and chunk stage hash extraction. */ - private const val ENABLE_CHUNK_EXTRACTION = false + private const val ENABLE_CHUNK_EXTRACTION = true /** Set to false to skip storing per-chunk block data in memory and writing binary dump files. */ private const val ENABLE_BINARY_DUMP = false diff --git a/src/main/kotlin/com/steelextractor/extractors/Strippables.kt b/src/main/kotlin/com/steelextractor/extractors/Strippables.kt index f8d31eb..fa7135a 100644 --- a/src/main/kotlin/com/steelextractor/extractors/Strippables.kt +++ b/src/main/kotlin/com/steelextractor/extractors/Strippables.kt @@ -4,7 +4,7 @@ import com.google.gson.JsonArray import com.google.gson.JsonElement import com.google.gson.JsonObject import com.steelextractor.SteelExtractor -import net.fabricmc.fabric.mixin.content.registry.AxeItemAccessor +import com.steelextractor.mixin.AxeItemAccessor import net.minecraft.core.registries.BuiltInRegistries import net.minecraft.server.MinecraftServer import org.slf4j.LoggerFactory @@ -20,7 +20,7 @@ class Strippables : SteelExtractor.Extractor { override fun extract(server: MinecraftServer): JsonElement { val topLevelJson = JsonObject() - for ((normal, stripped) in AxeItemAccessor.getStrippedBlocks()) { + for ((normal, stripped) in AxeItemAccessor.getStrippables()) { topLevelJson.addProperty( BuiltInRegistries.BLOCK.getKey(normal).path, BuiltInRegistries.BLOCK.getKey(stripped).path diff --git a/src/main/resources/steel-extractor.mixins.json b/src/main/resources/steel-extractor.mixins.json index c6ed3cd..41f8d77 100644 --- a/src/main/resources/steel-extractor.mixins.json +++ b/src/main/resources/steel-extractor.mixins.json @@ -4,7 +4,8 @@ "compatibilityLevel": "JAVA_25", "mixins": [ "ExampleMixin", - "ChunkStepMixin" + "ChunkStepMixin", + "AxeItemAccessor" ], "injectors": { "defaultRequire": 1