diff options
| author | Linnea Gräf <nea@nea.moe> | 2025-08-05 19:55:03 +0200 |
|---|---|---|
| committer | Linnea Gräf <nea@nea.moe> | 2025-08-05 19:55:03 +0200 |
| commit | cfcec82d374905e9210577bd38b7bac6ffabaa56 (patch) | |
| tree | 8d584ed3ea400e1a006fb2285acbcf0c4b7a8d09 | |
| parent | e362b95b3ee70fa5745463fc78507e230b607c3f (diff) | |
| download | Firmament-cfcec82d374905e9210577bd38b7bac6ffabaa56.tar.gz Firmament-cfcec82d374905e9210577bd38b7bac6ffabaa56.tar.bz2 Firmament-cfcec82d374905e9210577bd38b7bac6ffabaa56.zip | |
feat: dont export custom ids anymore in snbts
| -rw-r--r-- | src/main/kotlin/features/debug/itemeditor/LegacyItemExporter.kt | 10 | ||||
| -rw-r--r-- | src/main/kotlin/util/HoveredItemStack.kt | 6 |
2 files changed, 12 insertions, 4 deletions
diff --git a/src/main/kotlin/features/debug/itemeditor/LegacyItemExporter.kt b/src/main/kotlin/features/debug/itemeditor/LegacyItemExporter.kt index f4f23b0..20ab2c3 100644 --- a/src/main/kotlin/features/debug/itemeditor/LegacyItemExporter.kt +++ b/src/main/kotlin/features/debug/itemeditor/LegacyItemExporter.kt @@ -33,6 +33,7 @@ import moe.nea.firmament.util.json.toJsonArray import moe.nea.firmament.util.mc.displayNameAccordingToNbt import moe.nea.firmament.util.mc.loreAccordingToNbt import moe.nea.firmament.util.mc.toNbtList +import moe.nea.firmament.util.modifyExtraAttributes import moe.nea.firmament.util.skyBlockId import moe.nea.firmament.util.skyblock.Rarity import moe.nea.firmament.util.transformEachRecursively @@ -45,6 +46,7 @@ class LegacyItemExporter private constructor(var itemStack: ItemStack) { } var lore = itemStack.loreAccordingToNbt + val originalId = itemStack.extraAttributes.getString("id") var name = itemStack.displayNameAccordingToNbt val extraAttribs = itemStack.extraAttributes.copy() val legacyNbt = NbtCompound() @@ -195,8 +197,12 @@ class LegacyItemExporter private constructor(var itemStack: ItemStack) { } fun exportModernSnbt(): NbtElement { - val overlay = ItemStack.CODEC.encodeStart(NbtOps.INSTANCE, itemStack) - .orThrow + val overlay = ItemStack.CODEC.encodeStart(NbtOps.INSTANCE, itemStack.copy().also { + it.modifyExtraAttributes { attribs -> + originalId.ifPresent { attribs.putString("id", it) } + attribs + } + }).orThrow val overlayWithVersion = ExportedTestConstantMeta.SOURCE_CODEC.encode(ExportedTestConstantMeta.current, NbtOps.INSTANCE, overlay) .orThrow diff --git a/src/main/kotlin/util/HoveredItemStack.kt b/src/main/kotlin/util/HoveredItemStack.kt index ad07aa0..1b54562 100644 --- a/src/main/kotlin/util/HoveredItemStack.kt +++ b/src/main/kotlin/util/HoveredItemStack.kt @@ -14,7 +14,9 @@ interface HoveredItemStackProvider : Comparable<HoveredItemStackProvider> { val prio: Int get() = 0 - companion object : CompatLoader<HoveredItemStackProvider>(HoveredItemStackProvider::class) + companion object : CompatLoader<HoveredItemStackProvider>(HoveredItemStackProvider::class) { + val sorted = HoveredItemStackProvider.allValidInstances.sorted() + } } @AutoService(HoveredItemStackProvider::class) @@ -32,5 +34,5 @@ class VanillaScreenProvider : HoveredItemStackProvider { val HandledScreen<*>.focusedItemStack: ItemStack? get() = - HoveredItemStackProvider.allValidInstances + HoveredItemStackProvider.sorted .firstNotNullOfOrNull { it.provideHoveredItemStack(this)?.takeIf { !it.isEmpty } } |
