1
0
mirror of https://github.com/mamoe/mirai.git synced 2025-03-08 02:30:10 +08:00

QQA Debugging update

This commit is contained in:
Him188 2020-01-24 13:54:31 +08:00
parent 07a44662cf
commit 21fc9e129e
8 changed files with 26 additions and 37 deletions
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet
mirai-debug/src/test/java/jce/jce

View File

@ -22,16 +22,12 @@ import kotlin.jvm.JvmName
* @param TPacket 服务器回复包解析结果
*/
@UseExperimental(ExperimentalUnsignedTypes::class)
internal abstract class PacketFactory<out TPacket : Packet> {
@Suppress("PropertyName")
internal lateinit var _commandName: String
internal abstract class PacketFactory<out TPacket : Packet>(
/**
* 命令名. `wtlogin.login`, `ConfigPushSvc.PushDomain`
*/
open val commandName: String get() = _commandName
val commandName: String
) {
/**
* **解码**服务器的回复数据包
*/

View File

@ -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.buildOutgingPacket
internal object ImageDownPacket : PacketFactory<ImageDownPacket.ImageDownPacketResponse>() {
init {
this._commandName = "LongConn.OffPicDown"
}
internal object ImageDownPacket : PacketFactory<ImageDownPacket.ImageDownPacketResponse>("LongConn.OffPicDown") {
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(
Cmd0x352Packet.serializer(),
Cmd0x352Packet.createByImageRequest(req)

View File

@ -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.buildOutgingPacket
internal object ImageUpPacket : PacketFactory<ImageUpPacket.ImageUpPacketResponse>() {
init {
this._commandName = "LongConn.OffPicUp"
}
internal object ImageUpPacket : PacketFactory<ImageUpPacket.ImageUpPacketResponse>("LongConn.OffPicUp") {
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(
Cmd0x352Packet.serializer(),
Cmd0x352Packet.createByImageRequest(req)

View File

@ -0,0 +1,14 @@
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()
}
}
}

View File

@ -23,10 +23,7 @@ import net.mamoe.mirai.utils.io.discardExact
* OicqRequest
*/
@UseExperimental(ExperimentalUnsignedTypes::class)
internal object LoginPacket : PacketFactory<LoginPacket.LoginPacketResponse>() {
init {
this._commandName = "wtlogin.login"
}
internal object LoginPacket : PacketFactory<LoginPacket.LoginPacketResponse>("wtlogin.login") {
object SubCommand9 {
private const val appId = 16L

View File

@ -33,16 +33,12 @@ enum class RegPushReason {
unknown
}
internal object SvcReqRegisterPacket : PacketFactory<SvcReqRegisterPacket.Response>() {
internal object SvcReqRegisterPacket : PacketFactory<SvcReqRegisterPacket.Response>("StatSvc.register") {
internal object Response : Packet
private const val subAppId = 537062845L
init {
_commandName = "StatSvc.register"
}
operator fun invoke(
client: QQAndroidClient,
regPushReason: RegPushReason = RegPushReason.appRegister

View File

@ -7,11 +7,7 @@ import net.mamoe.mirai.qqandroid.QQAndroidBot
import net.mamoe.mirai.qqandroid.network.QQAndroidClient
import net.mamoe.mirai.qqandroid.network.protocol.packet.*
internal object TransEmpPacket : PacketFactory<TransEmpPacket.Response>() {
init {
_commandName = "wtlogin.trans_emp"
}
internal object TransEmpPacket : PacketFactory<TransEmpPacket.Response>("wtlogin.trans_emp") {
private const val appId = 16L
private const val subAppId = 537062845L

View File

@ -348,7 +348,7 @@ public final class JceInputStream {
JceInputStream$HeadData var4 = null;
if (this.skipToTag(var2)) {
try {
var1 = var1.getClass().newInstance();
var1 = var1.getClass().getConstructor().newInstance();
} catch (Exception var5) {
throw new JceDecodeException(var5.getMessage());
}
@ -875,7 +875,7 @@ public final class JceInputStream {
default:
throw new JceDecodeException("type mismatch.");
case 12:
var6.add(new Integer(0));
var6.add(0);
}
}
} else {