From 15b81f1f45737fb8e693073053ebc8d6267d59ff Mon Sep 17 00:00:00 2001 From: SomeYellowGuy <30015613+SomeYellowGuy@users.noreply.github.com> Date: Wed, 12 Aug 2026 22:35:42 +0530 Subject: [PATCH 1/2] added command extraction # Conflicts: # src/main/kotlin/com/steelextractor/SteelExtractor.kt --- .../com/steelextractor/SteelExtractor.kt | 2 ++ .../com/steelextractor/extractors/Commands.kt | 31 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 src/main/kotlin/com/steelextractor/extractors/Commands.kt diff --git a/src/main/kotlin/com/steelextractor/SteelExtractor.kt b/src/main/kotlin/com/steelextractor/SteelExtractor.kt index 8c6e07f..77fe94e 100644 --- a/src/main/kotlin/com/steelextractor/SteelExtractor.kt +++ b/src/main/kotlin/com/steelextractor/SteelExtractor.kt @@ -29,6 +29,7 @@ import com.steelextractor.extractors.VillagerTypeRegistryExtractor import com.steelextractor.extractors.CandleCakes import com.steelextractor.extractors.ChunkStageHashes import com.steelextractor.extractors.CustomStatRegistryExtractor +import com.steelextractor.extractors.Commands import com.steelextractor.extractors.GameEvents import com.steelextractor.extractors.Weathering import com.steelextractor.extractors.Strippables @@ -216,6 +217,7 @@ object SteelExtractor : ModInitializer { addUnlessDisabled("BLOCKS") { Blocks() } addUnlessDisabled("BLOCK_ENTITIES") { BlockEntities() } + addUnlessDisabled("COMMANDS") { Commands() } addUnlessDisabled("DATA_COMPONENTS") { DataComponents() } addUnlessDisabled("ITEMS") { Items() } addUnlessDisabled("PARTICLE_TYPES") { ParticleTypeRegistryExtractor() } diff --git a/src/main/kotlin/com/steelextractor/extractors/Commands.kt b/src/main/kotlin/com/steelextractor/extractors/Commands.kt new file mode 100644 index 0000000..b3871d4 --- /dev/null +++ b/src/main/kotlin/com/steelextractor/extractors/Commands.kt @@ -0,0 +1,31 @@ +package com.steelextractor.extractors + +import com.google.gson.JsonArray +import com.google.gson.JsonElement +import com.google.gson.JsonObject +import com.mojang.brigadier.tree.LiteralCommandNode +import com.steelextractor.SteelExtractor +import net.minecraft.server.MinecraftServer + +class Commands : SteelExtractor.Extractor { + override fun fileName(): String { + return "steel-core/build/commands.json" + } + + override fun extract(server: MinecraftServer): JsonElement { + val commands = JsonArray() + + for (node in server.commands.dispatcher.root.children) { + if (node !is LiteralCommandNode) continue + val element = JsonObject() + element.addProperty("name", "/" + node.name) + val redirect = (node.redirect as? LiteralCommandNode)?.literal + element.addProperty("class", "/" + (redirect ?: node.literal)) + commands.add(element) + } + + val output = JsonObject() + output.add("commands", commands) + return output + } +} From fe86da5f9a80d7bb104f65d45eb06741248d72a2 Mon Sep 17 00:00:00 2001 From: SomeYellowGuy <30015613+SomeYellowGuy@users.noreply.github.com> Date: Fri, 28 Aug 2026 17:36:39 +0530 Subject: [PATCH 2/2] changed target path for command extraction --- src/main/kotlin/com/steelextractor/extractors/Commands.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/com/steelextractor/extractors/Commands.kt b/src/main/kotlin/com/steelextractor/extractors/Commands.kt index b3871d4..5039c46 100644 --- a/src/main/kotlin/com/steelextractor/extractors/Commands.kt +++ b/src/main/kotlin/com/steelextractor/extractors/Commands.kt @@ -9,7 +9,8 @@ import net.minecraft.server.MinecraftServer class Commands : SteelExtractor.Extractor { override fun fileName(): String { - return "steel-core/build/commands.json" + // This should be placed in the Steel-Docs repository. + return "commands.json" } override fun extract(server: MinecraftServer): JsonElement {