Parcourir la source

[core] Add internal message when failed to transform internal message to facade message

Karlatemp il y a 3 ans
Parent
commit
00486e7900

+ 19 - 0
mirai-core/src/commonMain/kotlin/message/ReceiveMessageHandler.kt

@@ -24,6 +24,7 @@ import net.mamoe.mirai.internal.message.source.*
 import net.mamoe.mirai.internal.network.protocol.data.proto.ImMsgBody
 import net.mamoe.mirai.internal.network.protocol.data.proto.MsgComm
 import net.mamoe.mirai.message.data.*
+import net.mamoe.mirai.utils.structureToString
 import net.mamoe.mirai.utils.toLongUnsigned
 
 /**
@@ -104,6 +105,24 @@ private fun List<MsgComm.Msg>.toMessageChain(
     onlineSource: Boolean?,
     messageSourceKind: MessageSourceKind,
     facade: MessageProtocolFacade = MessageProtocolFacade,
+): MessageChain {
+    try {
+        return toMessageChainImpl(bot, groupIdOrZero, onlineSource, messageSourceKind, facade)
+    } catch (e: Exception) {
+        throw IllegalStateException(
+            "Failed to transform internal message to facade message, msg=${[email protected]()}",
+            e
+        )
+    }
+}
+
+
+private fun List<MsgComm.Msg>.toMessageChainImpl(
+    bot: Bot,
+    groupIdOrZero: Long,
+    onlineSource: Boolean?,
+    messageSourceKind: MessageSourceKind,
+    facade: MessageProtocolFacade = MessageProtocolFacade,
 ): MessageChain {
     val messageList = this