diff options
| author | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-09-16 12:34:18 +0200 |
|---|---|---|
| committer | hannibal2 <24389977+hannibal00212@users.noreply.github.com> | 2023-09-16 12:34:18 +0200 |
| commit | 4293cfd919c3c93d4532534f722c407d7ad1370d (patch) | |
| tree | f9f612f021ef7f4283d74312edfaca30badc6749 /src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt | |
| parent | 538e3ceb76f8e0b590291ce9aa90aa94896cdcb6 (diff) | |
| parent | 024ba52fb69b6cd44b4e31542867f802de656f15 (diff) | |
| download | SkyHanni-cum.tar.gz SkyHanni-cum.tar.bz2 SkyHanni-cum.zip | |
Merge branch 'beta' into cumcum
# Conflicts:
# src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt
# src/main/java/at/hannibal2/skyhanni/config/features/AshfangConfig.java
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt b/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt index 4aa47612e..23e9b6261 100644 --- a/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt +++ b/src/main/java/at/hannibal2/skyhanni/config/ConfigManager.kt @@ -82,11 +82,14 @@ class ConfigManager { } lateinit var features: Features + lateinit var sackData: SackData + private set private val logger = LorenzLogger("config_manager") var configDirectory = File("config/skyhanni") private var configFile: File? = null + private var sackFile: File? = null lateinit var processor: MoulConfigProcessor<Features> fun firstLoad() { @@ -96,6 +99,7 @@ class ConfigManager { configDirectory.mkdir() configFile = File(configDirectory, "config.json") + sackFile = File(configDirectory, "sacks.json") logger.log("Trying to load config from $configFile") @@ -133,6 +137,28 @@ class ConfigManager { } } + if (sackFile!!.exists()) { + try { + val inputStreamReader = InputStreamReader(FileInputStream(sackFile!!), StandardCharsets.UTF_8) + val bufferedReader = BufferedReader(inputStreamReader) + val builder = StringBuilder() + for (line in bufferedReader.lines()) { + builder.append(line) + builder.append("\n") + } + + + logger.log("load-sacks-now") + sackData = gson.fromJson( + builder.toString(), + SackData::class.java + ) + logger.log("Loaded sacks from file") + } catch (error: Exception) { + error.printStackTrace() + } + } + if (!::features.isInitialized) { logger.log("Creating blank config and saving to file") features = Features() @@ -143,6 +169,12 @@ class ConfigManager { saveConfig("auto-save-60s") } + if (!::sackData.isInitialized) { + logger.log("Creating blank sack data and saving") + sackData = SackData() + saveSackData("blank config") + } + val features = SkyHanniMod.feature processor = MoulConfigProcessor(SkyHanniMod.feature) BuiltinMoulConfigGuis.addProcessors(processor) @@ -185,4 +217,20 @@ class ConfigManager { e.printStackTrace() } } + + fun saveSackData(reason: String) { + logger.log("saveSackData: $reason") + val file = sackFile ?: throw Error("Can not save sacks, sackFile is null!") + try { + logger.log("Saving sack file") + file.parentFile.mkdirs() + file.createNewFile() + BufferedWriter(OutputStreamWriter(FileOutputStream(file), StandardCharsets.UTF_8)).use { writer -> + writer.write(gson.toJson(SkyHanniMod.sackData)) + } + } catch (e: IOException) { + logger.log("Could not save sacks file to $file") + e.printStackTrace() + } + } }
\ No newline at end of file |
