diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/client/ClientPacket.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/client/ClientPacket.kt index 6c43f9802..a39bcdb66 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/client/ClientPacket.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/client/ClientPacket.kt @@ -107,7 +107,8 @@ fun Int.toByteArray(): ByteArray = byteArrayOf(//todo 检查这方法对不对, (this.ushr(0) and 0xFF).toByte() ) -fun Int.toHexString(separator: String = " "): String = this.toByteArray().toHexString(separator); +@ExperimentalUnsignedTypes +fun Int.toHexString(separator: String = " "): String = this.toByteArray().toUByteArray().toHexString(separator); private fun md5(str: String): ByteArray = MessageDigest.getInstance("MD5").digest(str.toByteArray()) diff --git a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/Server0825Packet.kt b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/Server0825Packet.kt index ce364b602..6ab9be2ae 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/Server0825Packet.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/network/packet/server/Server0825Packet.kt @@ -38,7 +38,7 @@ class Server0825Packet(private val type: Type, inputStream: DataInputStream) : S 0X00 -> { data.skip(4) token = data.readNBytes(56) - data.skip(28) + data.skip(6) loginTime = data.readInt() loginIP = data.readIP() 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 7cb413827..28f14998c 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 @@ -1,6 +1,7 @@ package net.mamoe.mirai.network.packet.server import net.mamoe.mirai.network.packet.Packet +import net.mamoe.mirai.network.packet.client.toHexString import net.mamoe.mirai.util.toHexString import java.io.DataInputStream @@ -49,9 +50,11 @@ fun DataInputStream.readUntil(byte: Byte): ByteArray { @ExperimentalUnsignedTypes fun DataInputStream.readIP(): String { var buff = "" - for (i in 0..3) {//todo: check t// hat - buff += (readByte().toInt()).toString() + for (i in 0..3) { + val byte = readByte(); + buff += (byte.toUByte().toString()) if(i !=3)buff+="." + System.out.println(byte.toHexString()) } return buff } diff --git a/mirai-core/src/main/java/net/mamoe/mirai/util/Utils.kt b/mirai-core/src/main/java/net/mamoe/mirai/util/Utils.kt index de6afc57a..5b9eea91c 100644 --- a/mirai-core/src/main/java/net/mamoe/mirai/util/Utils.kt +++ b/mirai-core/src/main/java/net/mamoe/mirai/util/Utils.kt @@ -32,7 +32,8 @@ fun ByteArray.toHexString(separator: String = " "): String = Utils.toHexString(t @ExperimentalUnsignedTypes fun UByteArray.toHexString(separator: String = " "): String = Utils.toHexString(this, separator) -fun Byte.toHexString(): String = this.toString(16) +@ExperimentalUnsignedTypes +fun Byte.toHexString(): String = this.toUByte().toString(16) diff --git a/mirai-core/src/test/java/PacketTest.kt b/mirai-core/src/test/java/PacketTest.kt index 31321c903..423d771d5 100644 --- a/mirai-core/src/test/java/PacketTest.kt +++ b/mirai-core/src/test/java/PacketTest.kt @@ -1,4 +1,4 @@ -import net.mamoe.mirai.network.packet.client.Client0825ResponsePacket +import net.mamoe.mirai.network.packet.client.toHexString import net.mamoe.mirai.network.packet.server.Server0825Packet import net.mamoe.mirai.util.TEACryptor import net.mamoe.mirai.util.hexToBytes @@ -13,6 +13,6 @@ fun main(){ val packet = Server0825Packet(Server0825Packet.Type.TYPE_08_25_31_01,s) packet.decode() System.out.println(packet.token.toUByteArray().toHexString(" ")) - System.out.println(packet.loginTime) + System.out.println(packet.loginTime.toHexString(" ")) System.out.println(packet.loginIP) } \ No newline at end of file