aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/gui/config
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2025-09-14 19:46:52 +0200
committerLinnea Gräf <nea@nea.moe>2025-09-14 19:46:52 +0200
commit0a96dd618acba15269627c7eae8a2291fb2dc84a (patch)
treef31a66cbd13cefbfb2d006f07d3ef3da1010f7e7 /src/main/kotlin/gui/config
parent9abe9f46f04f188037687adb2740b32220ad21b2 (diff)
downloadFirmament-0a96dd618acba15269627c7eae8a2291fb2dc84a.tar.gz
Firmament-0a96dd618acba15269627c7eae8a2291fb2dc84a.tar.bz2
Firmament-0a96dd618acba15269627c7eae8a2291fb2dc84a.zip
snapshot
Diffstat (limited to 'src/main/kotlin/gui/config')
-rw-r--r--src/main/kotlin/gui/config/AllConfigsGui.kt2
-rw-r--r--src/main/kotlin/gui/config/ChoiceHandler.kt2
-rw-r--r--src/main/kotlin/gui/config/DurationHandler.kt3
-rw-r--r--src/main/kotlin/gui/config/HudMetaHandler.kt2
-rw-r--r--src/main/kotlin/gui/config/IntegerHandler.kt2
-rw-r--r--src/main/kotlin/gui/config/KeyBindingHandler.kt8
-rw-r--r--src/main/kotlin/gui/config/ManagedOption.kt2
-rw-r--r--src/main/kotlin/gui/config/StringHandler.kt2
-rw-r--r--src/main/kotlin/gui/config/storage/ConfigLoadContext.kt16
-rw-r--r--src/main/kotlin/gui/config/storage/FirmamentConfigLoader.kt4
-rw-r--r--src/main/kotlin/gui/config/storage/LegacyImporter.kt3
11 files changed, 24 insertions, 22 deletions
diff --git a/src/main/kotlin/gui/config/AllConfigsGui.kt b/src/main/kotlin/gui/config/AllConfigsGui.kt
index 0add10f..345269d 100644
--- a/src/main/kotlin/gui/config/AllConfigsGui.kt
+++ b/src/main/kotlin/gui/config/AllConfigsGui.kt
@@ -10,11 +10,11 @@ import moe.nea.firmament.commands.get
import moe.nea.firmament.commands.thenArgument
import moe.nea.firmament.commands.thenExecute
import moe.nea.firmament.events.CommandEvent
-import moe.nea.firmament.util.data.ManagedConfig
import moe.nea.firmament.util.MC
import moe.nea.firmament.util.MoulConfigUtils
import moe.nea.firmament.util.ScreenUtil.setScreenLater
import moe.nea.firmament.util.data.Config
+import moe.nea.firmament.util.data.ManagedConfig
object AllConfigsGui {
//
diff --git a/src/main/kotlin/gui/config/ChoiceHandler.kt b/src/main/kotlin/gui/config/ChoiceHandler.kt
index 9c3dda2..321b40d 100644
--- a/src/main/kotlin/gui/config/ChoiceHandler.kt
+++ b/src/main/kotlin/gui/config/ChoiceHandler.kt
@@ -9,8 +9,8 @@ import kotlinx.serialization.json.JsonElement
import kotlin.jvm.optionals.getOrNull
import net.minecraft.util.StringIdentifiable
import moe.nea.firmament.gui.CheckboxComponent
-import moe.nea.firmament.util.data.ManagedConfig
import moe.nea.firmament.util.ErrorUtil
+import moe.nea.firmament.util.data.ManagedConfig
import moe.nea.firmament.util.json.KJsonOps
class ChoiceHandler<E>(
diff --git a/src/main/kotlin/gui/config/DurationHandler.kt b/src/main/kotlin/gui/config/DurationHandler.kt
index 4800bf6..0fc945f 100644
--- a/src/main/kotlin/gui/config/DurationHandler.kt
+++ b/src/main/kotlin/gui/config/DurationHandler.kt
@@ -12,12 +12,11 @@ import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.json.jsonPrimitive
import kotlinx.serialization.json.long
-import moe.nea.firmament.util.data.ManagedConfig
import kotlin.time.Duration
import kotlin.time.DurationUnit
import kotlin.time.toDuration
-import net.minecraft.text.Text
import moe.nea.firmament.util.FirmFormatters
+import moe.nea.firmament.util.data.ManagedConfig
class DurationHandler(val config: ManagedConfig, val min: Duration, val max: Duration) :
ManagedConfig.OptionHandler<Duration> {
diff --git a/src/main/kotlin/gui/config/HudMetaHandler.kt b/src/main/kotlin/gui/config/HudMetaHandler.kt
index dcf5d8f..fae827d 100644
--- a/src/main/kotlin/gui/config/HudMetaHandler.kt
+++ b/src/main/kotlin/gui/config/HudMetaHandler.kt
@@ -10,9 +10,9 @@ import net.minecraft.text.MutableText
import net.minecraft.text.Text
import moe.nea.firmament.Firmament
import moe.nea.firmament.gui.FirmButtonComponent
-import moe.nea.firmament.util.data.ManagedConfig
import moe.nea.firmament.jarvis.JarvisIntegration
import moe.nea.firmament.util.MC
+import moe.nea.firmament.util.data.ManagedConfig
class HudMetaHandler(
val config: ManagedConfig,
diff --git a/src/main/kotlin/gui/config/IntegerHandler.kt b/src/main/kotlin/gui/config/IntegerHandler.kt
index 3e7be57..ab0237a 100644
--- a/src/main/kotlin/gui/config/IntegerHandler.kt
+++ b/src/main/kotlin/gui/config/IntegerHandler.kt
@@ -12,8 +12,8 @@ import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.json.int
import kotlinx.serialization.json.jsonPrimitive
-import moe.nea.firmament.util.data.ManagedConfig
import moe.nea.firmament.util.FirmFormatters
+import moe.nea.firmament.util.data.ManagedConfig
class IntegerHandler(val config: ManagedConfig, val min: Int, val max: Int) : ManagedConfig.OptionHandler<Int> {
override fun toJson(element: Int): JsonElement? {
diff --git a/src/main/kotlin/gui/config/KeyBindingHandler.kt b/src/main/kotlin/gui/config/KeyBindingHandler.kt
index a5e626d..3c08da2 100644
--- a/src/main/kotlin/gui/config/KeyBindingHandler.kt
+++ b/src/main/kotlin/gui/config/KeyBindingHandler.kt
@@ -1,19 +1,13 @@
package moe.nea.firmament.gui.config
-import io.github.notenoughupdates.moulconfig.common.IMinecraft
-import io.github.notenoughupdates.moulconfig.common.MyResourceLocation
-import io.github.notenoughupdates.moulconfig.deps.libninepatch.NinePatch
-import io.github.notenoughupdates.moulconfig.gui.GuiImmediateContext
-import io.github.notenoughupdates.moulconfig.gui.KeyboardEvent
-import io.github.notenoughupdates.moulconfig.gui.component.TextComponent
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.decodeFromJsonElement
import kotlinx.serialization.json.encodeToJsonElement
import moe.nea.firmament.gui.FirmButtonComponent
-import moe.nea.firmament.util.data.ManagedConfig
import moe.nea.firmament.keybindings.FirmamentKeyBindings
import moe.nea.firmament.keybindings.SavedKeyBinding
+import moe.nea.firmament.util.data.ManagedConfig
class KeyBindingHandler(val name: String, val managedConfig: ManagedConfig) :
ManagedConfig.OptionHandler<SavedKeyBinding> {
diff --git a/src/main/kotlin/gui/config/ManagedOption.kt b/src/main/kotlin/gui/config/ManagedOption.kt
index 888b3f1..1f742a7 100644
--- a/src/main/kotlin/gui/config/ManagedOption.kt
+++ b/src/main/kotlin/gui/config/ManagedOption.kt
@@ -3,11 +3,11 @@ package moe.nea.firmament.gui.config
import io.github.notenoughupdates.moulconfig.observer.GetSetter
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonObject
-import moe.nea.firmament.util.data.ManagedConfig
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
import net.minecraft.text.Text
import moe.nea.firmament.util.ErrorUtil
+import moe.nea.firmament.util.data.ManagedConfig
class ManagedOption<T : Any>(
val element: ManagedConfig,
diff --git a/src/main/kotlin/gui/config/StringHandler.kt b/src/main/kotlin/gui/config/StringHandler.kt
index da14d4b..f1eacab 100644
--- a/src/main/kotlin/gui/config/StringHandler.kt
+++ b/src/main/kotlin/gui/config/StringHandler.kt
@@ -7,8 +7,8 @@ import io.github.notenoughupdates.moulconfig.observer.GetSetter
import kotlinx.serialization.json.JsonElement
import kotlinx.serialization.json.JsonPrimitive
import kotlinx.serialization.json.jsonPrimitive
-import moe.nea.firmament.util.data.ManagedConfig
import net.minecraft.text.Text
+import moe.nea.firmament.util.data.ManagedConfig
class StringHandler(val config: ManagedConfig) : ManagedConfig.OptionHandler<String> {
override fun toJson(element: String): JsonElement? {
diff --git a/src/main/kotlin/gui/config/storage/ConfigLoadContext.kt b/src/main/kotlin/gui/config/storage/ConfigLoadContext.kt
index 59afaa1..59ca71e 100644
--- a/src/main/kotlin/gui/config/storage/ConfigLoadContext.kt
+++ b/src/main/kotlin/gui/config/storage/ConfigLoadContext.kt
@@ -27,13 +27,15 @@ data class ConfigLoadContext(
}
fun logInfo(message: String) {
- Firmament.logger.info("[ConfigUpgrade] $message")
+ if (Firmament.DEBUG)
+ Firmament.logger.info("[ConfigUpgrade] $message")
logBuffer.append("[INFO] ").append(message).appendLine()
}
fun logError(message: String, exception: Throwable) {
markShouldSaveLogBuffer()
- Firmament.logger.error("[ConfigUpgrade] $message", exception)
+ if (Firmament.DEBUG)
+ Firmament.logger.error("[ConfigUpgrade] $message", exception)
logBuffer.append("[ERROR] ").append(message).appendLine()
PrintWriter(StringBuilderWriter(logBuffer)).use {
exception.printStackTrace(it)
@@ -51,6 +53,16 @@ data class ConfigLoadContext(
path.createParentDirectories()
}
+ fun use(block: (ConfigLoadContext) -> Unit) {
+ try {
+ block(this)
+ } catch (ex: Exception) {
+ logError("Caught exception on CLC", ex)
+ } finally {
+ close()
+ }
+ }
+
override fun close() {
logInfo("Closing out config load.")
if (shouldSaveLogBuffer) {
diff --git a/src/main/kotlin/gui/config/storage/FirmamentConfigLoader.kt b/src/main/kotlin/gui/config/storage/FirmamentConfigLoader.kt
index 22cba2c..f8e3104 100644
--- a/src/main/kotlin/gui/config/storage/FirmamentConfigLoader.kt
+++ b/src/main/kotlin/gui/config/storage/FirmamentConfigLoader.kt
@@ -102,7 +102,7 @@ object FirmamentConfigLoader {
}
fun saveAll() {
- ConfigLoadContext("load-${System.currentTimeMillis()}").use { context ->
+ ConfigLoadContext("save-${System.currentTimeMillis()}").use { context ->
saveStorage(
ConfigStorageClass.CONFIG,
Unit,
@@ -198,7 +198,7 @@ object FirmamentConfigLoader {
}
fun markDirty(holder: IDataHolder<*>) {
- TODO("Not yet implemented")
+ saveAll()
}
}
diff --git a/src/main/kotlin/gui/config/storage/LegacyImporter.kt b/src/main/kotlin/gui/config/storage/LegacyImporter.kt
index 8915c17..942fd2a 100644
--- a/src/main/kotlin/gui/config/storage/LegacyImporter.kt
+++ b/src/main/kotlin/gui/config/storage/LegacyImporter.kt
@@ -1,10 +1,7 @@
package moe.nea.firmament.gui.config.storage
import java.nio.file.Path
-import javax.xml.namespace.QName
-import kotlin.io.path.Path
import kotlin.io.path.copyTo
-import kotlin.io.path.copyToRecursively
import kotlin.io.path.createDirectories
import kotlin.io.path.createParentDirectories
import kotlin.io.path.exists