Fix: MultiFilePluginDataStorageImpl (#393)

* fix: builtins config use ReadOnlyPluginConfig

* fix: remove BINTRAY_REPOSITORY

* merge: mamoe

* use: mavenCentral

* feat: handle UTF8-BOM
remove: mainLogger
This commit is contained in:
cssxsh 2021-09-12 20:32:16 +08:00 committed by GitHub
parent 03ebfd2278
commit 1e158a93ce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -10,7 +10,6 @@
package net.mamoe.mirai.console.internal.data
import kotlinx.serialization.json.Json
import net.mamoe.mirai.console.MiraiConsole
import net.mamoe.mirai.console.data.*
import net.mamoe.mirai.console.util.ConsoleExperimentalApi
import net.mamoe.mirai.utils.MiraiLogger
@ -33,7 +32,8 @@ internal open class MultiFilePluginDataStorageImpl(
public override fun load(holder: PluginDataHolder, instance: PluginData) {
instance.onInit(holder, this)
val text = getPluginDataFile(holder, instance).readText()
// 0xFEFF is BOM, handle UTF8-BOM
val text = getPluginDataFile(holder, instance).readText().removePrefix("\uFEFF")
if (text.isNotBlank()) {
logger.warning { "Deserializing $text" }
Yaml.decodeFromString(instance.updaterSerializer, text)
@ -78,8 +78,7 @@ internal open class MultiFilePluginDataStorageImpl(
yaml.decodeAnyFromString(it) // test yaml
}
}.recoverCatching {
// Just use mainLogger for convenience.
MiraiConsole.mainLogger.warning(
logger.warning(
"Could not save ${instance.saveName} in YAML format due to exception in YAML encoder. " +
"Please report this exception and relevant configurations to https://github.com/mamoe/mirai-console/issues/new",
it