diff options
| author | Walker Selby <git@walkerselby.com> | 2023-12-11 13:34:53 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-11 22:34:53 +0100 |
| commit | b8ec689ce9bd6fe89e4b825a988edb63fb51b5ab (patch) | |
| tree | 08cc781633a232ba5b4b3c403028ad6b40f17e8e /src/main/java/at/hannibal2/skyhanni/config | |
| parent | 8f3f2318352a2b24625566751daefd1c5e71e51a (diff) | |
| download | skyhanni-b8ec689ce9bd6fe89e4b825a988edb63fb51b5ab.tar.gz skyhanni-b8ec689ce9bd6fe89e4b825a988edb63fb51b5ab.tar.bz2 skyhanni-b8ec689ce9bd6fe89e4b825a988edb63fb51b5ab.zip | |
Internal Changes: Add Config Transform function (#769)
Added Config Transform function. #769
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/config')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt b/src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt index a113286fe..da558b77f 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt +++ b/src/main/java/at/hannibal2/skyhanni/config/ConfigUpdaterMigrator.kt @@ -13,7 +13,7 @@ object ConfigUpdaterMigrator { fun JsonElement.at(chain: List<String>, init: Boolean): JsonElement? { if (chain.isEmpty()) return this if (this !is JsonObject) return null - var obj = this.get(chain.first()) + var obj = this[chain.first()] if (obj == null && init) { obj = JsonObject() this.add(chain.first(), obj) @@ -34,7 +34,11 @@ object ConfigUpdaterMigrator { } } - fun move(since: Int, oldPath: String, newPath: String = oldPath, transform: (JsonElement) -> JsonElement = { it }) { + fun transform(since: Int, path: String, transform: (JsonElement) -> JsonElement = { it }) { + move(since, path, path, transform) + } + + fun move(since: Int, oldPath: String, newPath: String, transform: (JsonElement) -> JsonElement = { it }) { if (since <= oldVersion) { logger.log("Skipping move from $oldPath to $newPath ($since <= $oldVersion)") return @@ -83,7 +87,7 @@ object ConfigUpdaterMigrator { private fun merge(originalObject: JsonObject, overrideObject: JsonObject): Int { var count = 0 overrideObject.entrySet().forEach { - val element = originalObject.get(it.key) + val element = originalObject[it.key] val newElement = it.value if (element is JsonObject && newElement is JsonObject) { count += merge(element, newElement) @@ -99,19 +103,19 @@ object ConfigUpdaterMigrator { } fun fixConfig(config: JsonObject): JsonObject { - val lastVersion = (config.get("lastVersion") as? JsonPrimitive)?.asIntOrNull ?: -1 + val lastVersion = (config["lastVersion"] as? JsonPrimitive)?.asIntOrNull ?: -1 if (lastVersion > CONFIG_VERSION) { error("Cannot downgrade config") } if (lastVersion == CONFIG_VERSION) return config return (lastVersion until CONFIG_VERSION).fold(config) { accumulator, i -> logger.log("Starting config transformation from $i to ${i + 1}") - val storage = accumulator.get("storage")?.asJsonObject + val storage = accumulator["storage"]?.asJsonObject val dynamicPrefix: Map<String, List<String>> = mapOf( "#profile" to (storage?.get("players")?.asJsonObject?.entrySet() ?.flatMap { player -> - player.value.asJsonObject.get("profiles")?.asJsonObject?.entrySet()?.map { + player.value.asJsonObject["profiles"]?.asJsonObject?.entrySet()?.map { "storage.players.${player.key}.profiles.${it.key}" } ?: listOf() } |
