From 9f52a26fbdc2931e955d1f7864d5d489ad85d989 Mon Sep 17 00:00:00 2001
From: Him188 <Him188@mamoe.net>
Date: Sat, 20 Mar 2021 22:31:12 +0800
Subject: [PATCH] Fix FileMessage mirai code

---
 .../src/commonMain/kotlin/message/data/FileMessage.kt    | 9 +++++++++
 .../src/commonMain/kotlin/message/FileMessageImpl.kt     | 8 --------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/mirai-core-api/src/commonMain/kotlin/message/data/FileMessage.kt b/mirai-core-api/src/commonMain/kotlin/message/data/FileMessage.kt
index 5187d2039..06fae3e1a 100644
--- a/mirai-core-api/src/commonMain/kotlin/message/data/FileMessage.kt
+++ b/mirai-core-api/src/commonMain/kotlin/message/data/FileMessage.kt
@@ -23,6 +23,7 @@ import net.mamoe.mirai.event.events.MessageEvent
 import net.mamoe.mirai.internal.message.copy
 import net.mamoe.mirai.internal.message.map
 import net.mamoe.mirai.message.code.CodableMessage
+import net.mamoe.mirai.message.code.internal.appendStringAsMiraiCode
 import net.mamoe.mirai.utils.MiraiExperimentalApi
 import net.mamoe.mirai.utils.MiraiInternalApi
 import net.mamoe.mirai.utils.RemoteFile
@@ -66,6 +67,14 @@ public interface FileMessage : MessageContent, ConstrainSingle, CodableMessage {
 
     override fun contentToString(): String = "[文件]$name" // orthodox
 
+    override fun appendMiraiCodeTo(builder: StringBuilder) {
+        builder.append("[mirai:file:")
+        builder.appendStringAsMiraiCode(id).append(",")
+        builder.append(internalId).append(",")
+        builder.appendStringAsMiraiCode(name).append(",")
+        builder.append(size).append("]")
+    }
+
     /**
      * 获取一个对应的 [RemoteFile]. 当目标群或好友不存在这个文件时返回 `null`.
      */
diff --git a/mirai-core/src/commonMain/kotlin/message/FileMessageImpl.kt b/mirai-core/src/commonMain/kotlin/message/FileMessageImpl.kt
index 6e67d46ba..24cadb8c0 100644
--- a/mirai-core/src/commonMain/kotlin/message/FileMessageImpl.kt
+++ b/mirai-core/src/commonMain/kotlin/message/FileMessageImpl.kt
@@ -31,13 +31,5 @@ internal data class FileMessageImpl(
     override val internalId: Int
         get() = busId
 
-    override fun appendMiraiCodeTo(builder: StringBuilder) {
-        builder.append("[mirai:file:")
-        builder.append(id).append(",")
-        builder.append(busId).append(",")
-        builder.append(name).append(",")
-        builder.append(size).append("]")
-    }
-
     override fun toString(): String = "[mirai:file:$name,$id,$size,$busId]"
 }
\ No newline at end of file