|
|
@@ -2,6 +2,7 @@ package net.mamoe.mirai.qqandroid.network.protocol.packet.chat.receive
|
|
|
|
|
|
import kotlinx.io.core.ByteReadPacket
|
|
|
import kotlinx.io.core.discardExact
|
|
|
+import kotlinx.io.core.writeFully
|
|
|
import net.mamoe.mirai.data.MultiPacket
|
|
|
import net.mamoe.mirai.data.Packet
|
|
|
import net.mamoe.mirai.message.FriendMessage
|
|
|
@@ -21,10 +22,11 @@ import net.mamoe.mirai.qqandroid.network.protocol.packet.OutgoingPacket
|
|
|
import net.mamoe.mirai.qqandroid.network.protocol.packet.PacketFactory
|
|
|
import net.mamoe.mirai.qqandroid.network.protocol.packet.buildOutgoingUniPacket
|
|
|
import net.mamoe.mirai.qqandroid.utils.toMessageChain
|
|
|
-import net.mamoe.mirai.qqandroid.utils.toRichText
|
|
|
+import net.mamoe.mirai.qqandroid.utils.toRichTextElems
|
|
|
import net.mamoe.mirai.utils.cryptor.contentToString
|
|
|
import net.mamoe.mirai.utils.io.hexToBytes
|
|
|
import net.mamoe.mirai.utils.io.toReadPacket
|
|
|
+import kotlin.math.absoluteValue
|
|
|
import kotlin.random.Random
|
|
|
|
|
|
class MessageSvc {
|
|
|
@@ -131,18 +133,22 @@ class MessageSvc {
|
|
|
toUin: Long,
|
|
|
message: MessageChain
|
|
|
): OutgoingPacket = buildOutgoingUniPacket(client) {
|
|
|
+
|
|
|
+ ///writeFully("0A 08 0A 06 08 89 FC A6 8C 0B 12 06 08 01 10 00 18 00 1A 1F 0A 1D 12 08 0A 06 0A 04 F0 9F 92 A9 12 11 AA 02 0E 88 01 00 9A 01 08 78 00 F8 01 00 C8 02 00 20 9B 7A 28 F4 CA 9B B8 03 32 34 08 92 C2 C4 F1 05 10 92 C2 C4 F1 05 18 E6 ED B9 C3 02 20 89 FE BE A4 06 28 89 84 F9 A2 06 48 DE 8C EA E5 0E 58 D9 BD BB A0 09 60 1D 68 92 C2 C4 F1 05 70 00 40 01".hexToBytes())
|
|
|
+
|
|
|
+ ///return@buildOutgoingUniPacket
|
|
|
writeProtoBuf(
|
|
|
MsgSvc.PbSendMsgReq.serializer(), MsgSvc.PbSendMsgReq(
|
|
|
routingHead = MsgSvc.RoutingHead(c2c = MsgSvc.C2C(toUin = toUin)),
|
|
|
contentHead = MsgComm.ContentHead(pkgNum = 1),
|
|
|
msgBody = ImMsgBody.MsgBody(
|
|
|
- richText = message.toRichText().apply {
|
|
|
- elems.add(ImMsgBody.Elem(generalFlags = ImMsgBody.GeneralFlags(pbReserve = "78 00 F8 01 00 C8 02 00".hexToBytes())))
|
|
|
- }
|
|
|
+ richText = ImMsgBody.RichText(
|
|
|
+ elems = message.toRichTextElems()
|
|
|
+ )
|
|
|
),
|
|
|
- msgSeq = 15741,
|
|
|
- msgRand = Random.nextInt(),
|
|
|
- syncCookie = client.c2cMessageSync.syncCookie,
|
|
|
+ msgSeq = 17041,
|
|
|
+ msgRand = Random.nextInt().absoluteValue,
|
|
|
+ syncCookie = client.c2cMessageSync.syncCookie.takeIf { it.isNotEmpty() } ?: "08 92 C2 C4 F1 05 10 92 C2 C4 F1 05 18 E6 ED B9 C3 02 20 89 FE BE A4 06 28 89 84 F9 A2 06 48 DE 8C EA E5 0E 58 D9 BD BB A0 09 60 1D 68 92 C2 C4 F1 05 70 00".hexToBytes(),
|
|
|
msgVia = 1
|
|
|
)
|
|
|
)
|