From 376e3284fb005aa8dcf3f0ee28d8b3762d94c5cb Mon Sep 17 00:00:00 2001 From: Auxilor Date: Tue, 22 Mar 2022 16:53:16 +0000 Subject: [PATCH] Fixed config bugs --- .../internal/config/json/EcoJSONConfigWrapper.kt | 16 +++++++++++++++- .../internal/config/yaml/EcoYamlConfigWrapper.kt | 4 ++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/json/EcoJSONConfigWrapper.kt b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/json/EcoJSONConfigWrapper.kt index a6f1ff16..be3f9b95 100644 --- a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/json/EcoJSONConfigWrapper.kt +++ b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/json/EcoJSONConfigWrapper.kt @@ -83,7 +83,21 @@ open class EcoJSONConfigWrapper : Config { section.setRecursively(remainingPath, obj) } - values[path] = if (obj is Config) obj.toMap() else obj + values[path] = when (obj) { + is Config -> obj.toMap() + is Collection<*> -> { + val first = obj.firstOrNull() + if (first is Config) { + obj as Collection + obj.map { it.toMap() } + } else if (obj.isEmpty()) { + mutableListOf() + } else { + obj.toList() + } + } + else -> obj + } } override fun getKeys(deep: Boolean): List { diff --git a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/yaml/EcoYamlConfigWrapper.kt b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/yaml/EcoYamlConfigWrapper.kt index 09718b4c..e1ee7135 100644 --- a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/yaml/EcoYamlConfigWrapper.kt +++ b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/yaml/EcoYamlConfigWrapper.kt @@ -61,9 +61,9 @@ open class EcoYamlConfigWrapper : Config { obj as Collection obj.map { it.toBukkit() } } else if (obj.isEmpty()) { - emptyList() + mutableListOf() // Don't use EmptyList, causes anchors as they have the same reference } else { - obj + obj.toList() } } else -> obj