diff options
author | Linnea Gräf <nea@nea.moe> | 2024-11-17 18:33:29 +0100 |
---|---|---|
committer | Linnea Gräf <nea@nea.moe> | 2024-11-17 18:33:29 +0100 |
commit | 6045077025629cabc1831a281fec532faa7781dd (patch) | |
tree | fb0e4da543667e3a2e0579625c70b7d0f8e67a79 /src/main/kotlin/features/inventory/buttons/InventoryButtonTemplates.kt | |
parent | e00c21b2ade870c94b2641d24bf75ca15f81b044 (diff) | |
download | Firmament-6045077025629cabc1831a281fec532faa7781dd.tar.gz Firmament-6045077025629cabc1831a281fec532faa7781dd.tar.bz2 Firmament-6045077025629cabc1831a281fec532faa7781dd.zip |
fix: Fix position of inventory buttons during preset importing
Diffstat (limited to 'src/main/kotlin/features/inventory/buttons/InventoryButtonTemplates.kt')
-rw-r--r-- | src/main/kotlin/features/inventory/buttons/InventoryButtonTemplates.kt | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/src/main/kotlin/features/inventory/buttons/InventoryButtonTemplates.kt b/src/main/kotlin/features/inventory/buttons/InventoryButtonTemplates.kt index 99b544b..d282157 100644 --- a/src/main/kotlin/features/inventory/buttons/InventoryButtonTemplates.kt +++ b/src/main/kotlin/features/inventory/buttons/InventoryButtonTemplates.kt @@ -1,35 +1,33 @@ - - package moe.nea.firmament.features.inventory.buttons -import kotlinx.serialization.decodeFromString import kotlinx.serialization.encodeToString import net.minecraft.text.Text import moe.nea.firmament.Firmament +import moe.nea.firmament.util.ErrorUtil import moe.nea.firmament.util.MC import moe.nea.firmament.util.TemplateUtil object InventoryButtonTemplates { - val legacyPrefix = "NEUBUTTONS/" - val modernPrefix = "MAYBEONEDAYIWILLHAVEMYOWNFORMAT" + val legacyPrefix = "NEUBUTTONS/" + val modernPrefix = "MAYBEONEDAYIWILLHAVEMYOWNFORMAT" - fun loadTemplate(t: String): List<InventoryButton>? { - val buttons = TemplateUtil.maybeDecodeTemplate<List<String>>(legacyPrefix, t) ?: return null - return buttons.mapNotNull { - try { - Firmament.json.decodeFromString<InventoryButton>(it).also { - if (it.icon?.startsWith("extra:") == true || it.command?.any { it.isLowerCase() } == true) { - MC.sendChat(Text.translatable("firmament.inventory-buttons.import-failed")) - } - } - } catch (e: Exception) { - null - } - } - } + fun loadTemplate(t: String): List<InventoryButton>? { + val buttons = TemplateUtil.maybeDecodeTemplate<List<String>>(legacyPrefix, t) ?: return null + return buttons.mapNotNull { + ErrorUtil.catch<InventoryButton?>("Could not import button") { + Firmament.json.decodeFromString<InventoryButton>(it).also { + if (it.icon?.startsWith("extra:") == true) { + MC.sendChat(Text.translatable("firmament.inventory-buttons.import-failed")) + } + } + }.or { + null + } + } + } - fun saveTemplate(buttons: List<InventoryButton>): String { - return TemplateUtil.encodeTemplate(legacyPrefix, buttons.map { Firmament.json.encodeToString(it) }) - } + fun saveTemplate(buttons: List<InventoryButton>): String { + return TemplateUtil.encodeTemplate(legacyPrefix, buttons.map { Firmament.json.encodeToString(it) }) + } } |