From c5b01fbf5fbb6dee58c55308c8ab931e02165eb0 Mon Sep 17 00:00:00 2001 From: Him188moe Date: Sat, 31 Aug 2019 23:29:59 +0800 Subject: [PATCH] Message receiver is working! --- .../mirai/network/packet/server/ServerPacket.kt | 4 +++- .../mirai/network/packet/server/UnknownPacket.kt | 12 ++++++++++++ .../network/packet/server/event/MessageEvent.kt | 4 ++-- .../network/packet/server/event/ServerEventPacket.kt | 5 +++-- 4 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/UnknownPacket.kt diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/ServerPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/ServerPacket.kt index 2f66ce891..f570065ff 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/ServerPacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/ServerPacket.kt @@ -73,6 +73,9 @@ abstract class ServerPacket(val input: DataInputStream) : Packet { "08 28 04 34" -> ServerSessionKeyResponsePacketEncrypted(stream) + "00 81 EC 78" -> UnknownPacket(stream) + "00 81 AD 7A" -> UnknownPacket(stream) + else -> when (idHex.substring(0, 5)) { "00 EC" -> ServerLoginSuccessPacket(stream) "00 1D" -> ServerSKeyResponsePacketEncrypted(stream) @@ -85,7 +88,6 @@ abstract class ServerPacket(val input: DataInputStream) : Packet { "00 CE", "00 17" -> ServerMessageEventPacketRawEncoded(stream, idHex.hexToBytes()) - else -> throw IllegalArgumentException(idHex) } } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/UnknownPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/UnknownPacket.kt new file mode 100644 index 000000000..278bc6bec --- /dev/null +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/UnknownPacket.kt @@ -0,0 +1,12 @@ +package net.mamoe.mirai.network.packet.server + +import java.io.DataInputStream + +/** + * @author Him188moe + */ +class UnknownPacket(input: DataInputStream) : ServerPacket(input) { + override fun decode() { + + } +} \ No newline at end of file diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/event/MessageEvent.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/event/MessageEvent.kt index 31f2226fa..ad9803e0d 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/event/MessageEvent.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/event/MessageEvent.kt @@ -67,9 +67,9 @@ class ServerMessageEventPacketRaw( "00 A6" -> ServerFriendMessageEventPacket(this.input, packetId, eventIdentity) - "02 10" -> ServerUnknownEventPacket(this.input, packetId, eventIdentity) + //"02 10", "00 12" -> ServerUnknownEventPacket(this.input, packetId, eventIdentity) - else -> throw IllegalArgumentException(typeHex) + else -> ServerUnknownEventPacket(this.input, packetId, eventIdentity) } } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/event/ServerEventPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/event/ServerEventPacket.kt index 9dc55889f..af9d2ea8f 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/event/ServerEventPacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/event/ServerEventPacket.kt @@ -57,7 +57,6 @@ class ServerGroupMessageEventPacket(input: DataInputStream, packetId: ByteArray, group = this.input.goto(51).readInt() qq = this.input.goto(56).readInt() val fontLength = this.input.goto(108).readShort() - println(this.toString()) messageType = when (val id = this.input.goto(110 + fontLength + 2).readByte().toInt()) { 19 -> MessageType.NORMAL 14 -> MessageType.XML @@ -130,8 +129,10 @@ class ServerGroupMessageEventPacket(input: DataInputStream, packetId: ByteArray, } class ServerFriendMessageEventPacket(input: DataInputStream, packetId: ByteArray, eventIdentity: ByteArray) : ServerEventPacket(input, packetId, eventIdentity) { + var qq: Int = 0 + lateinit var message: String override fun decode() { - + TODO("FRIEND 解析") } } \ No newline at end of file