Преглед на файлове

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

Karlatemp преди 3 години
родител
ревизия
00486e7900
променени са 1 файла, в които са добавени 19 реда и са изтрити 0 реда
  1. 19 0
      mirai-core/src/commonMain/kotlin/message/ReceiveMessageHandler.kt

+ 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