Commit e44e7b39 authored by Him188's avatar Him188

Daily QQA update: JceInput

parent 6b6499e9
package net.mamoe.mirai.qqandroid.network.io
import kotlinx.io.core.BytePacketBuilder
abstract class JceStruct {
abstract fun writeTo(builder: JceOutput)
interface Factory<out T : JceStruct> {
fun newInstanceFrom(input: JceInput): T
}
}
\ No newline at end of file
package net.mamoe.mirai.qqandroid.network.protocol.jce
import net.mamoe.mirai.qqandroid.network.io.JceInput
import net.mamoe.mirai.qqandroid.network.io.JceOutput
import net.mamoe.mirai.qqandroid.network.io.JceStruct
......@@ -17,6 +18,12 @@ class RequestPacket(
val sServantName: String = "",
val status: Map<String, String> = EMPTY_MAP
) : JceStruct() {
companion object : Factory<RequestPacket> {
override fun newInstanceFrom(input: JceInput): RequestPacket {
TODO("not implemented")
}
}
override fun writeTo(builder: JceOutput) {
builder.write(this.iVersion, 1)
builder.write(this.cPacketType, 2)
......
package net.mamoe.mirai.qqandroid.network.protocol.jce
import net.mamoe.mirai.qqandroid.network.io.JceInput
import net.mamoe.mirai.qqandroid.network.io.JceOutput
import net.mamoe.mirai.qqandroid.network.io.JceStruct
......@@ -41,7 +42,12 @@ class SvcReqRegister(
val vecGuid: ByteArray? = null,
val vecServerBuf: ByteArray? = null
) : JceStruct() {
companion object : Factory<RequestPacket> {
override fun newInstanceFrom(input: JceInput): RequestPacket {
TODO("not implemented")
}
}
override fun writeTo(builder: JceOutput) {
builder.write(lUin, 0)
builder.write(lBid, 1)
......
......@@ -8,6 +8,7 @@ import net.mamoe.mirai.qqandroid.network.protocol.packet.login.LoginPacket
import net.mamoe.mirai.qqandroid.network.protocol.packet.login.NullPacketId
import net.mamoe.mirai.qqandroid.network.protocol.packet.login.NullPacketId.commandName
import net.mamoe.mirai.qqandroid.network.protocol.packet.login.PacketId
import net.mamoe.mirai.qqandroid.network.protocol.packet.login.SvcReqRegisterPacket
import net.mamoe.mirai.utils.cryptor.adjustToPublicKey
import net.mamoe.mirai.utils.cryptor.decryptBy
import net.mamoe.mirai.utils.io.*
......@@ -48,7 +49,8 @@ internal typealias PacketConsumer = suspend (packet: Packet, packetId: PacketId,
@UseExperimental(ExperimentalUnsignedTypes::class)
internal object KnownPacketFactories : List<PacketFactory<*>> by mutableListOf(
LoginPacket
LoginPacket,
SvcReqRegisterPacket
) {
fun findPacketFactory(commandName: String): PacketFactory<*> = this.first { it.id.commandName == commandName }
......
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