From 1de2208ff9fd31046c2bc240e5950d14a502472e Mon Sep 17 00:00:00 2001 From: laptop59 <90901102+Laptop59@users.noreply.github.com> Date: Fri, 8 May 2026 20:46:30 +0530 Subject: [PATCH] added `slot_ranges.json` to be generated --- README.md | 1 + .../kotlin/de/snowii/extractor/Extractor.kt | 1 + .../extractors/non_registry/SlotRanges.kt | 28 +++++++++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 src/main/kotlin/de/snowii/extractor/extractors/non_registry/SlotRanges.kt diff --git a/README.md b/README.md index 0f01fe5..99cfb32 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ Extractor is a Fabric mod that extracts Minecraft data (blocks, items, entities, - [x] DialogActionType - [x] DialogBodyType - [x] Custom Stats +- [x] Slot Ranges ### Running diff --git a/src/main/kotlin/de/snowii/extractor/Extractor.kt b/src/main/kotlin/de/snowii/extractor/Extractor.kt index 74a5ce5..197fd0e 100644 --- a/src/main/kotlin/de/snowii/extractor/Extractor.kt +++ b/src/main/kotlin/de/snowii/extractor/Extractor.kt @@ -88,6 +88,7 @@ class Extractor : ModInitializer { RecipeRemainder(), VillagerData(), CustomStats(), + SlotRanges(), /* ChunkDumpTests.NoiseDump( "no_blend_no_beard_0_0.chunk", 0, diff --git a/src/main/kotlin/de/snowii/extractor/extractors/non_registry/SlotRanges.kt b/src/main/kotlin/de/snowii/extractor/extractors/non_registry/SlotRanges.kt new file mode 100644 index 0000000..72d4002 --- /dev/null +++ b/src/main/kotlin/de/snowii/extractor/extractors/non_registry/SlotRanges.kt @@ -0,0 +1,28 @@ +package de.snowii.extractor.extractors.non_registry + +import com.google.gson.JsonArray +import com.google.gson.JsonElement +import com.google.gson.JsonObject +import de.snowii.extractor.Extractor +import net.minecraft.server.MinecraftServer +import net.minecraft.world.inventory.SlotRanges + +class SlotRanges : Extractor.Extractor { + override fun fileName(): String { + return "slot_ranges.json" + } + + override fun extract(server: MinecraftServer): JsonElement { + val slotRanges = JsonObject() + for (slotRangeName in SlotRanges.allNames()) { + val slotRange = SlotRanges.nameToIds(slotRangeName)!! + val intList = slotRange.slots() + + val intArray = JsonArray() + intList.forEach { i -> intArray.add(i) } + + slotRanges.add(slotRangeName, intArray) + } + return slotRanges + } +} \ No newline at end of file