Commit 21fc9e12 authored by Him188's avatar Him188

QQA Debugging update

parent 07a44662
...@@ -22,16 +22,12 @@ import kotlin.jvm.JvmName ...@@ -22,16 +22,12 @@ import kotlin.jvm.JvmName
* @param TPacket 服务器回复包解析结果 * @param TPacket 服务器回复包解析结果
*/ */
@UseExperimental(ExperimentalUnsignedTypes::class) @UseExperimental(ExperimentalUnsignedTypes::class)
internal abstract class PacketFactory<out TPacket : Packet> { internal abstract class PacketFactory<out TPacket : Packet>(
@Suppress("PropertyName")
internal lateinit var _commandName: String
/** /**
* 命令名. 如 `wtlogin.login`, `ConfigPushSvc.PushDomain` * 命令名. 如 `wtlogin.login`, `ConfigPushSvc.PushDomain`
*/ */
open val commandName: String get() = _commandName val commandName: String
) {
/** /**
* **解码**服务器的回复数据包 * **解码**服务器的回复数据包
*/ */
......
...@@ -9,15 +9,10 @@ import net.mamoe.mirai.qqandroid.network.protocol.packet.OutgoingPacket ...@@ -9,15 +9,10 @@ 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.PacketFactory
import net.mamoe.mirai.qqandroid.network.protocol.packet.buildOutgingPacket import net.mamoe.mirai.qqandroid.network.protocol.packet.buildOutgingPacket
internal object ImageDownPacket : PacketFactory<ImageDownPacket.ImageDownPacketResponse>() { internal object ImageDownPacket : PacketFactory<ImageDownPacket.ImageDownPacketResponse>("LongConn.OffPicDown") {
init {
this._commandName = "LongConn.OffPicDown"
}
operator fun invoke(client: QQAndroidClient, req: GetImgUrlReq): OutgoingPacket { operator fun invoke(client: QQAndroidClient, req: GetImgUrlReq): OutgoingPacket {
return buildOutgingPacket(client, this._commandName, this._commandName, client.wLoginSigInfo.d2Key) { return buildOutgingPacket(client, this.commandName, this.commandName, client.wLoginSigInfo.d2Key) {
ProtoBuf.dump( ProtoBuf.dump(
Cmd0x352Packet.serializer(), Cmd0x352Packet.serializer(),
Cmd0x352Packet.createByImageRequest(req) Cmd0x352Packet.createByImageRequest(req)
......
...@@ -9,15 +9,10 @@ import net.mamoe.mirai.qqandroid.network.protocol.packet.OutgoingPacket ...@@ -9,15 +9,10 @@ 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.PacketFactory
import net.mamoe.mirai.qqandroid.network.protocol.packet.buildOutgingPacket import net.mamoe.mirai.qqandroid.network.protocol.packet.buildOutgingPacket
internal object ImageUpPacket : PacketFactory<ImageUpPacket.ImageUpPacketResponse>() { internal object ImageUpPacket : PacketFactory<ImageUpPacket.ImageUpPacketResponse>("LongConn.OffPicUp") {
init {
this._commandName = "LongConn.OffPicUp"
}
operator fun invoke(client: QQAndroidClient, req: UploadImgReq): OutgoingPacket { operator fun invoke(client: QQAndroidClient, req: UploadImgReq): OutgoingPacket {
return buildOutgingPacket(client, this._commandName, this._commandName, client.wLoginSigInfo.d2Key) { return buildOutgingPacket(client, this.commandName, this.commandName, client.wLoginSigInfo.d2Key) {
ProtoBuf.dump( ProtoBuf.dump(
Cmd0x352Packet.serializer(), Cmd0x352Packet.serializer(),
Cmd0x352Packet.createByImageRequest(req) Cmd0x352Packet.createByImageRequest(req)
......
package net.mamoe.mirai.qqandroid.network.protocol.packet.chat.receive
import kotlinx.io.core.ByteReadPacket
import net.mamoe.mirai.message.GroupMessage
import net.mamoe.mirai.qqandroid.QQAndroidBot
import net.mamoe.mirai.qqandroid.network.protocol.packet.PacketFactory
internal class OnlinePush {
internal object PbPushGroupMsg : PacketFactory<GroupMessage>("OnlinePush.PbPushGroupMsg") {
override suspend fun ByteReadPacket.decode(bot: QQAndroidBot): GroupMessage {
TODO()
}
}
}
\ No newline at end of file
...@@ -23,10 +23,7 @@ import net.mamoe.mirai.utils.io.discardExact ...@@ -23,10 +23,7 @@ import net.mamoe.mirai.utils.io.discardExact
* OicqRequest * OicqRequest
*/ */
@UseExperimental(ExperimentalUnsignedTypes::class) @UseExperimental(ExperimentalUnsignedTypes::class)
internal object LoginPacket : PacketFactory<LoginPacket.LoginPacketResponse>() { internal object LoginPacket : PacketFactory<LoginPacket.LoginPacketResponse>("wtlogin.login") {
init {
this._commandName = "wtlogin.login"
}
object SubCommand9 { object SubCommand9 {
private const val appId = 16L private const val appId = 16L
......
...@@ -33,16 +33,12 @@ enum class RegPushReason { ...@@ -33,16 +33,12 @@ enum class RegPushReason {
unknown unknown
} }
internal object SvcReqRegisterPacket : PacketFactory<SvcReqRegisterPacket.Response>() { internal object SvcReqRegisterPacket : PacketFactory<SvcReqRegisterPacket.Response>("StatSvc.register") {
internal object Response : Packet internal object Response : Packet
private const val subAppId = 537062845L private const val subAppId = 537062845L
init {
_commandName = "StatSvc.register"
}
operator fun invoke( operator fun invoke(
client: QQAndroidClient, client: QQAndroidClient,
regPushReason: RegPushReason = RegPushReason.appRegister regPushReason: RegPushReason = RegPushReason.appRegister
......
...@@ -7,11 +7,7 @@ import net.mamoe.mirai.qqandroid.QQAndroidBot ...@@ -7,11 +7,7 @@ import net.mamoe.mirai.qqandroid.QQAndroidBot
import net.mamoe.mirai.qqandroid.network.QQAndroidClient import net.mamoe.mirai.qqandroid.network.QQAndroidClient
import net.mamoe.mirai.qqandroid.network.protocol.packet.* import net.mamoe.mirai.qqandroid.network.protocol.packet.*
internal object TransEmpPacket : PacketFactory<TransEmpPacket.Response>() { internal object TransEmpPacket : PacketFactory<TransEmpPacket.Response>("wtlogin.trans_emp") {
init {
_commandName = "wtlogin.trans_emp"
}
private const val appId = 16L private const val appId = 16L
private const val subAppId = 537062845L private const val subAppId = 537062845L
......
...@@ -348,7 +348,7 @@ public final class JceInputStream { ...@@ -348,7 +348,7 @@ public final class JceInputStream {
JceInputStream$HeadData var4 = null; JceInputStream$HeadData var4 = null;
if (this.skipToTag(var2)) { if (this.skipToTag(var2)) {
try { try {
var1 = var1.getClass().newInstance(); var1 = var1.getClass().getConstructor().newInstance();
} catch (Exception var5) { } catch (Exception var5) {
throw new JceDecodeException(var5.getMessage()); throw new JceDecodeException(var5.getMessage());
} }
...@@ -875,7 +875,7 @@ public final class JceInputStream { ...@@ -875,7 +875,7 @@ public final class JceInputStream {
default: default:
throw new JceDecodeException("type mismatch."); throw new JceDecodeException("type mismatch.");
case 12: case 12:
var6.add(new Integer(0)); var6.add(0);
} }
} }
} else { } else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment