Просмотр исходного кода

Improve message event logs:
- Do not include MessageSource
- Treat MessageSyncEvent as a message sent by others

Him188 5 лет назад
Родитель
Сommit
162bc9113c
1 измененных файлов с 46 добавлено и 23 удалено
  1. 46 23
      mirai-core/src/commonMain/kotlin/contact/util.kt

+ 46 - 23
mirai-core/src/commonMain/kotlin/contact/util.kt

@@ -165,34 +165,57 @@ internal fun MessageChain.verityLength(
 
 @Suppress("RemoveRedundantQualifierName") // compiler bug
 internal fun net.mamoe.mirai.event.events.MessageEvent.logMessageReceived() {
+    fun renderMessage(message: MessageChain): String {
+        return message.filterNot { it is MessageSource }.joinToString("").replaceMagicCodes()
+    }
+
     fun renderGroupMessage(group: Group, senderName: String, sender: Member, message: MessageChain): String {
         val displayId = if (sender is AnonymousMember) "匿名" else sender.id.toString()
-        return "[${group.name}(${group.id})] ${senderName}($displayId) -> $message".replaceMagicCodes()
+        return "[${group.name}(${group.id})] ${senderName}($displayId) -> ${renderMessage(message)}"
     }
 
-    when (this) {
-        is net.mamoe.mirai.event.events.GroupMessageEvent -> bot.logger.verbose {
-            renderGroupMessage(group, senderName, sender, message)
-        }
-        is net.mamoe.mirai.event.events.GroupTempMessageEvent -> bot.logger.verbose {
-            "[${group.name}(${group.id})] $senderName(Temp ${sender.id}) -> $message".replaceMagicCodes()
-        }
-        is net.mamoe.mirai.event.events.StrangerMessageEvent -> bot.logger.verbose {
-            "[$senderName(Stranger ${sender.id}) -> $message".replaceMagicCodes()
-        }
-        is net.mamoe.mirai.event.events.FriendMessageEvent -> bot.logger.verbose {
-            "${sender.nick}(${sender.id}) -> $message".replaceMagicCodes()
-        }
-        is net.mamoe.mirai.event.events.OtherClientMessageEvent -> bot.logger.verbose {
-            "${client.platform} -> $message".replaceMagicCodes()
-        }
-        is GroupMessageSyncEvent -> bot.logger.verbose {
-            renderGroupMessage(group, senderName, sender, message)
-        }
-        is MessageSyncEvent -> bot.logger.verbose {
-            "${this.subject} <- $message".replaceMagicCodes()
+    fun renderGroupTempMessage(group: Group, senderName: String, sender: Member, message: MessageChain): String {
+        return "[${group.name}(${group.id})] $senderName(Temp ${sender.id}) -> ${renderMessage(message)}"
+    }
+
+    fun renderStrangerMessage(senderName: String, sender: User, message: MessageChain): String {
+        return "[$senderName(Stranger ${sender.id}) -> ${renderMessage(message)}"
+    }
+
+    fun renderFriendMessage(sender: User, message: MessageChain): String {
+        return "${sender.nick}(${sender.id}) -> ${renderMessage(message)}"
+    }
+
+    fun renderOtherClientMessage(client: OtherClient): String {
+        return "${client.platform} -> ${renderMessage(message)}"
+    }
+
+
+    bot.logger.verbose {
+        when (this) {
+            is net.mamoe.mirai.event.events.GroupMessageEvent ->
+                renderGroupMessage(group, senderName, sender, message)
+            is net.mamoe.mirai.event.events.GroupMessageSyncEvent ->
+                renderGroupMessage(group, senderName, sender, message)
+
+            is net.mamoe.mirai.event.events.GroupTempMessageEvent ->
+                renderGroupTempMessage(group, senderName, sender, message)
+            is net.mamoe.mirai.event.events.GroupTempMessageSyncEvent ->
+                renderGroupTempMessage(group, senderName, sender, message)
+
+            is net.mamoe.mirai.event.events.StrangerMessageEvent,
+            is net.mamoe.mirai.event.events.StrangerMessageSyncEvent ->
+                renderStrangerMessage(senderName, sender, message)
+
+            is net.mamoe.mirai.event.events.FriendMessageEvent,
+            is net.mamoe.mirai.event.events.FriendMessageSyncEvent ->
+                renderFriendMessage(sender, message)
+
+            is net.mamoe.mirai.event.events.OtherClientMessageEvent ->
+                renderOtherClientMessage(client)
+
+            else -> toString()
         }
-        else -> bot.logger.verbose(toString())
     }
 }