summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/config
diff options
context:
space:
mode:
authorWalker Selby <git@walkerselby.com>2023-12-11 13:34:53 -0800
committerGitHub <noreply@github.com>2023-12-11 22:34:53 +0100
commitb8ec689ce9bd6fe89e4b825a988edb63fb51b5ab (patch)
tree08cc781633a232ba5b4b3c403028ad6b40f17e8e /src/main/java/at/hannibal2/skyhanni/config
parent8f3f2318352a2b24625566751daefd1c5e71e51a (diff)
downloadskyhanni-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.kt16
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()
}