فهرست منبع

Fix: MultiFilePluginDataStorageImpl (#393)

* fix: builtins config use ReadOnlyPluginConfig

* fix: remove BINTRAY_REPOSITORY

* merge: mamoe

* use: mavenCentral

* feat: handle UTF8-BOM
remove: mainLogger
cssxsh 4 سال پیش
والد
کامیت
1e158a93ce
1فایلهای تغییر یافته به همراه3 افزوده شده و 4 حذف شده
  1. 3 4
      backend/mirai-console/src/internal/data/MultiFilePluginDataStorageImpl.kt

+ 3 - 4
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