From 41b9d6b01d428ee10c0b0910e559bc9b715385db Mon Sep 17 00:00:00 2001 From: Auxilor Date: Wed, 23 Mar 2022 16:24:17 +0000 Subject: [PATCH] Config cleanup --- .../{ConfigTypeHandlers.kt => ConfigUtils.kt} | 23 ++++++++++++++++--- .../eco/internal/config/EcoConfigFactory.kt | 17 -------------- .../config/{updating => }/EcoConfigHandler.kt | 6 ++--- .../eco/internal/config/EcoLoadableConfig.kt | 7 +++--- .../updating/InvalidUpdateMethodException.kt | 3 --- .../willfp/eco/internal/spigot/EcoHandler.kt | 2 +- 6 files changed, 28 insertions(+), 30 deletions(-) rename eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/{ConfigTypeHandlers.kt => ConfigUtils.kt} (87%) rename eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/{updating => }/EcoConfigHandler.kt (91%) delete mode 100644 eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/updating/InvalidUpdateMethodException.kt diff --git a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/ConfigTypeHandlers.kt b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/ConfigUtils.kt similarity index 87% rename from eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/ConfigTypeHandlers.kt rename to eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/ConfigUtils.kt index bbc8b06f..77a614b1 100644 --- a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/ConfigTypeHandlers.kt +++ b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/ConfigUtils.kt @@ -9,6 +9,8 @@ import org.yaml.snakeyaml.DumperOptions import org.yaml.snakeyaml.LoaderOptions import org.yaml.snakeyaml.Yaml import org.yaml.snakeyaml.representer.Representer +import java.io.BufferedReader +import java.io.Reader fun ConfigType.toMap(input: String?): Map = this.handler.toMap(input) @@ -16,9 +18,6 @@ fun ConfigType.toMap(input: String?): Map = fun ConfigType.toString(map: Map): String = this.handler.toString(map) -private val ConfigType.handler: ConfigTypeHandler - get() = if (this == ConfigType.JSON) JSONConfigTypeHandler else YamlConfigTypeHandler - fun Map<*, *>.ensureTypesForConfig(): Map { val building = mutableMapOf() @@ -41,6 +40,24 @@ fun Map<*, *>.ensureTypesForConfig(): Map { return building } +fun Reader.readToString(): String { + val input = this as? BufferedReader ?: BufferedReader(this) + val builder = StringBuilder() + + var line: String? + input.use { + while (it.readLine().also { read -> line = read } != null) { + builder.append(line) + builder.append('\n') + } + } + + return builder.toString() +} + +private val ConfigType.handler: ConfigTypeHandler + get() = if (this == ConfigType.JSON) JSONConfigTypeHandler else YamlConfigTypeHandler + private abstract class ConfigTypeHandler( val type: ConfigType ) { diff --git a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/EcoConfigFactory.kt b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/EcoConfigFactory.kt index 6fd48cfa..0d3fbd20 100644 --- a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/EcoConfigFactory.kt +++ b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/EcoConfigFactory.kt @@ -6,8 +6,6 @@ import com.willfp.eco.core.config.interfaces.Config import com.willfp.eco.core.config.interfaces.LoadableConfig import com.willfp.eco.core.config.wrapper.ConfigFactory import org.bukkit.configuration.ConfigurationSection -import java.io.BufferedReader -import java.io.Reader object EcoConfigFactory : ConfigFactory { override fun createConfig(config: ConfigurationSection): Config = @@ -51,18 +49,3 @@ object EcoConfigFactory : ConfigFactory { *updateBlacklist ) } - -fun Reader.readToString(): String { - val input = this as? BufferedReader ?: BufferedReader(this) - val builder = StringBuilder() - - var line: String? - input.use { - while (it.readLine().also { read -> line = read } != null) { - builder.append(line) - builder.append('\n') - } - } - - return builder.toString() -} \ No newline at end of file diff --git a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/updating/EcoConfigHandler.kt b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/EcoConfigHandler.kt similarity index 91% rename from eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/updating/EcoConfigHandler.kt rename to eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/EcoConfigHandler.kt index 875afc00..196b61b5 100644 --- a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/updating/EcoConfigHandler.kt +++ b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/EcoConfigHandler.kt @@ -1,11 +1,9 @@ -package com.willfp.eco.internal.config.updating +package com.willfp.eco.internal.config import com.willfp.eco.core.EcoPlugin import com.willfp.eco.core.config.interfaces.LoadableConfig import com.willfp.eco.core.config.updating.ConfigHandler import com.willfp.eco.core.config.updating.ConfigUpdater -import com.willfp.eco.internal.config.EcoLoadableConfig -import com.willfp.eco.internal.config.EcoUpdatableConfig import org.reflections.Reflections import org.reflections.scanners.MethodAnnotationsScanner @@ -53,3 +51,5 @@ class EcoConfigHandler( } } } + +class InvalidUpdateMethodException(message: String) : RuntimeException(message) diff --git a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/EcoLoadableConfig.kt b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/EcoLoadableConfig.kt index ebfb15a3..602da5e3 100644 --- a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/EcoLoadableConfig.kt +++ b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/EcoLoadableConfig.kt @@ -58,7 +58,7 @@ open class EcoLoadableConfig( @Throws(IOException::class) override fun save() { if (!hasChanged) { // In order to preserve comments - return + //return } val contents = StringBuilder() @@ -100,8 +100,9 @@ open class EcoLoadableConfig( } protected fun init(reader: Reader) { - makeHeader(reader.readToString()) - super.init(type.toMap(reader.readToString())) + val string = reader.readToString() + makeHeader(string) + super.init(type.toMap(string)) } fun init(file: File) { diff --git a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/updating/InvalidUpdateMethodException.kt b/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/updating/InvalidUpdateMethodException.kt deleted file mode 100644 index 79dbbaad..00000000 --- a/eco-core/core-backend/src/main/kotlin/com/willfp/eco/internal/config/updating/InvalidUpdateMethodException.kt +++ /dev/null @@ -1,3 +0,0 @@ -package com.willfp.eco.internal.config.updating - -class InvalidUpdateMethodException(message: String) : RuntimeException(message) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoHandler.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoHandler.kt index 1165341b..8bfc105d 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoHandler.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/EcoHandler.kt @@ -10,7 +10,7 @@ import com.willfp.eco.internal.EcoCleaner import com.willfp.eco.internal.EcoPropsParser import com.willfp.eco.internal.Plugins import com.willfp.eco.internal.config.EcoConfigFactory -import com.willfp.eco.internal.config.updating.EcoConfigHandler +import com.willfp.eco.internal.config.EcoConfigHandler import com.willfp.eco.internal.drops.EcoDropQueueFactory import com.willfp.eco.internal.events.EcoEventManager import com.willfp.eco.internal.extensions.EcoExtensionLoader