aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/features/inventory/buttons/InventoryButtonTemplates.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/features/inventory/buttons/InventoryButtonTemplates.kt')
-rw-r--r--src/main/kotlin/features/inventory/buttons/InventoryButtonTemplates.kt42
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) })
+ }
}