From ea02835ad2df3be2157eca131cae3d743a0a9113 Mon Sep 17 00:00:00 2001 From: StageGuard <1355416608@qq.com> Date: Sat, 2 Sep 2023 09:32:45 +0800 Subject: [PATCH] [core] ignore file downloaded message --- .../protocol/impl/FileMessageProtocol.kt | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/mirai-core/src/commonMain/kotlin/message/protocol/impl/FileMessageProtocol.kt b/mirai-core/src/commonMain/kotlin/message/protocol/impl/FileMessageProtocol.kt index 841c4161b..20047b36d 100644 --- a/mirai-core/src/commonMain/kotlin/message/protocol/impl/FileMessageProtocol.kt +++ b/mirai-core/src/commonMain/kotlin/message/protocol/impl/FileMessageProtocol.kt @@ -224,16 +224,19 @@ internal class FileMessageProtocol : MessageProtocol() { if (originalMsg != null && originalMsg.msgHead.msgType == 529) { markAsConsumed() val sub0x4 = originalMsg.msgBody.msgContent.loadAs(SubMsgType0x4.MsgBody.serializer()) - if (sub0x4.msgNotOnlineFile != null) { - collect( - FriendFileMessageImpl( - sub0x4.msgNotOnlineFile.fileUuid.decodeToString(), - sub0x4.msgNotOnlineFile.fileName.decodeToString(), - sub0x4.msgNotOnlineFile.fileSize, - sub0x4.msgNotOnlineFile.fileMd5 - ) + val msgNotOnline = sub0x4.msgNotOnlineFile ?: return + + // notify that friend had downloaded the file. + if (msgNotOnline.subcmd == 2) return + + collect( + FriendFileMessageImpl( + sub0x4.msgNotOnlineFile.fileUuid.decodeToString(), + sub0x4.msgNotOnlineFile.fileName.decodeToString(), + sub0x4.msgNotOnlineFile.fileSize, + sub0x4.msgNotOnlineFile.fileMd5 ) - } + ) return } }