From 3dfe7f6e6ff98296e099b6919206177c764f95df Mon Sep 17 00:00:00 2001 From: Him188 Date: Mon, 7 Oct 2019 13:18:04 +0800 Subject: [PATCH] Make ClientEventResponsePacket inside ServerEventPacket --- .../protocol/tim/TIMBotNetworkHandler.kt | 2 +- .../protocol/tim/packet/ServerEvent.kt | 45 +++++++++---------- 2 files changed, 21 insertions(+), 26 deletions(-) diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/TIMBotNetworkHandler.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/TIMBotNetworkHandler.kt index 117889a4e..04774ae87 100644 --- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/TIMBotNetworkHandler.kt +++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/TIMBotNetworkHandler.kt @@ -116,7 +116,7 @@ internal class TIMBotNetworkHandler(private val bot: Bot) : BotNetworkHandler { if (packet is ServerEventPacket) { //no need to sync acknowledgement packets NetworkScope.launch { - sendPacket(ClientEventResponsePacket(bot.account.qqNumber, packet.packetId, sessionKey, packet.eventIdentity)) + sendPacket(packet.ResponsePacket(bot.account.qqNumber, sessionKey)) } } diff --git a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/ServerEvent.kt b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/ServerEvent.kt index 9658fb144..f09bc183b 100644 --- a/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/ServerEvent.kt +++ b/mirai-core/src/jvmMain/kotlin/net/mamoe/mirai/network/protocol/tim/packet/ServerEvent.kt @@ -52,6 +52,26 @@ abstract class ServerEventPacket(input: DataInputStream, val packetId: ByteArray fun decrypt(sessionKey: ByteArray): Raw = Raw(decryptBy(sessionKey), packetId).setId(this.idHex) } } + + @PacketId("") + inner class ResponsePacket( + val qq: Long, + val sessionKey: ByteArray + ) : ClientPacket() { + override fun encode() { + this.write(packetId)//packet id 4bytes + + this.writeQQ(qq) + this.writeHex(TIMProtocol.fixVer2) + this.encryptAndWrite(sessionKey) { + write(eventIdentity) + } + } + + override fun getFixedId(): String { + return packetId.toUHexString() + } + } } /** @@ -348,31 +368,6 @@ B1 89 BE 09 8F 00 1A E5 00 0B 03 A2 09 90 BB 7A 1F 40 00 A6 00 00 00 20 00 05 00 */ -/** - * 告知服务器已经收到数据 - */ -@PacketId("")//随后写入 -class ClientEventResponsePacket( - private val qq: Long, - private val packetIdFromServer: ByteArray,//4bytes - private val sessionKey: ByteArray, - private val eventIdentity: ByteArray -) : ClientPacket() { - override fun encode() { - this.write(packetIdFromServer)//packet id 4bytes - - this.writeQQ(qq) - this.writeHex(TIMProtocol.fixVer2) - this.encryptAndWrite(sessionKey) { - write(eventIdentity) - } - } - - override fun getFixedId(): String { - return packetIdFromServer.toUHexString() - } -} - /* 3E 03 3F A2 76 E4 B8 DD 00 09 7C 3F 64 5C 2A 60 1F 40 00 A6 00 00 00 2D 00 05 00 02 00 01 00 06 00 04 00 01 2E 01 00 09 00 06 00 01 00 00 00 01 00 0A 00 04 01 00 00 00 00 01 00 04 00 00 00 00 00 03 00 01 02 38 03 3E 03 3F A2 76 E4 B8 DD 01 10 9D D6 12 EA BC 07 91 EF DC 29 75 67 A9 1E 00 0B 2F E4 5D 6B A8 F6 01 1D 00 00 00 00 01 00 00 00 01 4D 53 47 00 00 00 00 00 5D 6B A8 F6 08 7E 90 CE 00 00 00 00 0C 00 86 22 00 0C E5 BE AE E8 BD AF E9 9B 85 E9 BB 91 00 00 01 00 09 01 00 06 E7 89 9B E9 80 BC 0E 00 07 01 00 04 00 00 00 09 19 00 18 01 00 15 AA 02 12 9A 01 0F 80 01 01 C8 01 00 F0 01 00 F8 01 00 90 02 00 3E 03 3F A2 76 E4 B8 DD 00 03 5F 85 64 5C 2A A4 1F 40 00 A6 00 00 00 2D 00 05 00 02 00 01 00 06 00 04 00 01 2E 01 00 09 00 06 00 01 00 00 00 01 00 0A 00 04 01 00 00 00 00 01 00 04 00 00 00 00 00 03 00 01 02 38 03 3E 03 3F A2 76 E4 B8 DD 01 10 9D D6 12 EA BC 07 91 EF DC 29 75 67 A9 1E 00 0B 2F E5 5D 6B A9 16 01 1D 00 00 00 00 01 00 00 00 01 4D 53 47 00 00 00 00 00 5D 6B A9 17 1B B3 4D D7 00 00 00 00 0C 00 86 22 00 0C E5 BE AE E8 BD AF E9 9B 85 E9 BB 91 00 00 01 00 09 01 00 06 E7 89 9B E9 80 BC 0E 00 07 01 00 04 00 00 00 09 19 00 18 01 00 15 AA 02 12 9A 01 0F 80 01 01 C8 01 00 F0 01 00 F8 01 00 90 02 00