From 1e158a93cef40a007b3b90d202a3f6abb5f01c9a Mon Sep 17 00:00:00 2001 From: cssxsh <32539286+cssxsh@users.noreply.github.com> Date: Sun, 12 Sep 2021 20:32:16 +0800 Subject: [PATCH] Fix: MultiFilePluginDataStorageImpl (#393) * fix: builtins config use ReadOnlyPluginConfig * fix: remove BINTRAY_REPOSITORY * merge: mamoe * use: mavenCentral * feat: handle UTF8-BOM remove: mainLogger --- .../src/internal/data/MultiFilePluginDataStorageImpl.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/backend/mirai-console/src/internal/data/MultiFilePluginDataStorageImpl.kt b/backend/mirai-console/src/internal/data/MultiFilePluginDataStorageImpl.kt index 2cb629b25..acca0be75 100644 --- a/backend/mirai-console/src/internal/data/MultiFilePluginDataStorageImpl.kt +++ b/backend/mirai-console/src/internal/data/MultiFilePluginDataStorageImpl.kt @@ -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