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:
parent
07a44662cf
commit
21fc9e129e
mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet
mirai-debug/src/test/java/jce/jce
@ -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
|
||||
) {
|
||||
/**
|
||||
* **解码**服务器的回复数据包
|
||||
*/
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
|
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user