diff options
author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-04-01 11:28:23 +0200 |
---|---|---|
committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-04-01 11:28:23 +0200 |
commit | 16d4eef2a6938b1a9242005cde5e11b170486649 (patch) | |
tree | 27182c6d80e8eaa7166544fd63768970b5b98c5a /src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt | |
parent | 07a16dae17b80b0e489c812d80f6e92745db80ac (diff) | |
download | skyhanni-16d4eef2a6938b1a9242005cde5e11b170486649.tar.gz skyhanni-16d4eef2a6938b1a9242005cde5e11b170486649.tar.bz2 skyhanni-16d4eef2a6938b1a9242005cde5e11b170486649.zip |
Fixed config resets
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt')
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt b/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt index 75e31ab2a..dd10d8482 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt +++ b/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt @@ -2,6 +2,7 @@ package at.hannibal2.skyhanni.config import at.hannibal2.skyhanni.SkyHanniMod import at.hannibal2.skyhanni.events.ConfigLoadEvent +import at.hannibal2.skyhanni.features.garden.CropType import com.google.gson.GsonBuilder import io.github.moulberry.moulconfig.observer.PropertyTypeAdapterFactory import io.github.moulberry.moulconfig.processor.BuiltinMoulConfigGuis @@ -36,14 +37,24 @@ class ConfigManager { if (configFile!!.exists()) { try { - BufferedReader(InputStreamReader(FileInputStream(configFile!!), StandardCharsets.UTF_8)).use { reader -> - SkyHanniMod.feature = gson.fromJson( - reader, - Features::class.java - ) + val inputStreamReader = InputStreamReader(FileInputStream(configFile!!), StandardCharsets.UTF_8) + val bufferedReader = BufferedReader(inputStreamReader) + val builder = StringBuilder() + for (line in bufferedReader.lines()) { + val result = fixConfig(line) + builder.append(result) + builder.append("\n") } + + + SkyHanniMod.feature = gson.fromJson( + builder.toString(), + Features::class.java + ) logger.info("Loaded config from file") } catch (e: Exception) { + println("config error") + e.printStackTrace() val backupFile = configFile!!.resolveSibling("config-${System.currentTimeMillis()}-backup.json") logger.error( "Exception while reading $configFile. Will load blank config and save backup to $backupFile", @@ -75,6 +86,18 @@ class ConfigManager { ) } + private fun fixConfig(line: String): String { + var result = line + for (type in CropType.values()) { + val normal = "\"${type.cropName}\"" + val enumName = "\"${type.name}\"" + while (result.contains(normal)) { + result = result.replace(normal, enumName) + } + } + return result + } + fun saveConfig() { try { logger.info("Saving config file") |