diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MultiMsg.kt b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MultiMsg.kt index f75c5800d..378c87995 100644 --- a/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MultiMsg.kt +++ b/mirai-core/src/commonMain/kotlin/network/protocol/data/proto/MultiMsg.kt @@ -23,7 +23,7 @@ internal class MultiMsg : ProtoBuf { @Serializable internal class MultiMsgApplyDownReq( - @ProtoNumber(1) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY, + @ProtoNumber(1) @JvmField val msgResid: String = "", @ProtoNumber(2) @JvmField val msgType: Int = 0, @ProtoNumber(3) @JvmField val srcUin: Long = 0L ) : ProtoBuf diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/PacketFactory.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/PacketFactory.kt index b1b6d792f..ca5f26dab 100644 --- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/PacketFactory.kt +++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/PacketFactory.kt @@ -153,6 +153,7 @@ internal object KnownPacketFactories { Heartbeat.Alive, PbMessageSvc.PbMsgWithDraw, MultiMsg.ApplyUp, + MultiMsg.ApplyDown, NewContact.SystemMsgNewFriend, NewContact.SystemMsgNewGroup, ProfileService.GroupMngReq, diff --git a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/MultiMsg.kt b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/MultiMsg.kt index 921f95ba4..6f62fa84c 100644 --- a/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/MultiMsg.kt +++ b/mirai-core/src/commonMain/kotlin/network/protocol/packet/chat/MultiMsg.kt @@ -151,4 +151,41 @@ internal class MultiMsg { } } } + + object ApplyDown: OutgoingPacketFactory("MultiMsg.ApplyDown") { + sealed class Response : Packet { + + object MessageTooLarge : Response() + } + + operator fun invoke( + client: QQAndroidClient, + buType: Int, + resId: String, + msgType: Int, + ) = buildOutgoingUniPacket(client) { + writeProtoBuf( + MultiMsg.ReqBody.serializer(), + MultiMsg.ReqBody( + buType = buType, // 1: long, 2: 合并转发 + buildVer = "8.2.0.1296", + multimsgApplydownReq = listOf( + MultiMsg.MultiMsgApplyDownReq( + msgResid = resId, + msgType = msgType, + ) + ), + netType = 3, // wifi=3, wap=5 + platformType = 9, + subcmd = 2, + termType = 5, + reqChannelType = 2 + ) + ) + } + + override suspend fun ByteReadPacket.decode(bot: QQAndroidBot): Response { + return Response.MessageTooLarge + } + } } \ No newline at end of file