From 07164cc79bab8293421250914deea821b6b46375 Mon Sep 17 00:00:00 2001
From: Karlatemp <kar@kasukusakura.com>
Date: Sun, 19 Feb 2023 12:57:16 +0800
Subject: [PATCH] [core] Fix group roaming message fetching

---
 .../kotlin/contact/roaming/RoamingMessagesImplGroup.kt     | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/mirai-core/src/commonMain/kotlin/contact/roaming/RoamingMessagesImplGroup.kt b/mirai-core/src/commonMain/kotlin/contact/roaming/RoamingMessagesImplGroup.kt
index 677c3f2b8..6331708e6 100644
--- a/mirai-core/src/commonMain/kotlin/contact/roaming/RoamingMessagesImplGroup.kt
+++ b/mirai-core/src/commonMain/kotlin/contact/roaming/RoamingMessagesImplGroup.kt
@@ -12,12 +12,12 @@ package net.mamoe.mirai.internal.contact.roaming
 import kotlinx.coroutines.flow.*
 import net.mamoe.mirai.contact.roaming.RoamingMessageFilter
 import net.mamoe.mirai.internal.contact.CommonGroupImpl
-import net.mamoe.mirai.internal.message.getMessageSourceKindFromC2cCmdOrNull
 import net.mamoe.mirai.internal.message.toMessageChainOnline
 import net.mamoe.mirai.internal.network.protocol.data.proto.MsgComm
 import net.mamoe.mirai.internal.network.protocol.packet.chat.TroopManagement
 import net.mamoe.mirai.internal.network.protocol.packet.chat.receive.MessageSvcPbGetGroupMsg
 import net.mamoe.mirai.message.data.MessageChain
+import net.mamoe.mirai.message.data.MessageSourceKind
 
 internal class RoamingMessagesImplGroup(
     override val contact: CommonGroupImpl
@@ -56,12 +56,11 @@ internal class RoamingMessagesImplGroup(
 
                 emitAll(
                     resp.msgElem.asSequence()
-                        .filter { getMessageSourceKindFromC2cCmdOrNull(it.msgHead.c2cCmd) != null } // ignore unsupported messages
                         .filter { it.time in timeStart..timeEnd }
-                        .sortedByDescending { it.time } // Ensure caller receiver newer messages first
+                        .sortedByDescending { it.msgHead.msgSeq } // Ensure caller receiver newer messages first
                         .filter { filter.apply(it) } // Call filter after sort
                         .asFlow()
-                        .map { it.toMessageChainOnline(bot) }
+                        .map { listOf(it).toMessageChainOnline(bot, contact.id, MessageSourceKind.GROUP) }
                 )
 
                 currentSeq = resp.msgElem.minBy { it.time }.msgHead.msgSeq