Merge remote-tracking branch 'origin/master'

This commit is contained in:
jiahua.liu 2020-01-30 23:43:32 +08:00
commit 745cb7484d
14 changed files with 332 additions and 280 deletions

View File

@ -308,10 +308,10 @@ class Jce private constructor(private val charset: JceCharset, context: SerialMo
input: JceInput input: JceInput
) : JceDecoder(input) { ) : JceDecoder(input) {
override fun endStructure(desc: SerialDescriptor) { override fun endStructure(desc: SerialDescriptor) {
while (input.peakHead().type != STRUCT_END) { while (input.input.canRead() && input.peakHeadOrNull()?.type != STRUCT_END) {
input.readHead() input.readHeadOrNull() ?: return
} }
input.readHead() input.readHeadOrNull()
} }
} }
@ -513,6 +513,9 @@ class Jce private constructor(private val charset: JceCharset, context: SerialMo
@PublishedApi @PublishedApi
internal fun peakHead(): JceHead = input.makeView().readHead() ?: error("no enough data to read head") internal fun peakHead(): JceHead = input.makeView().readHead() ?: error("no enough data to read head")
@PublishedApi
internal fun peakHeadOrNull(): JceHead? = input.makeView().readHead()
@Suppress("NOTHING_TO_INLINE") // 避免 stacktrace 出现两个 readHead @Suppress("NOTHING_TO_INLINE") // 避免 stacktrace 出现两个 readHead
private inline fun IoBuffer.readHead(): JceHead? { private inline fun IoBuffer.readHead(): JceHead? {
if (endOfInput) return null if (endOfInput) return null

View File

@ -334,7 +334,6 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler
val handler = PacketListener(commandName = commandName, sequenceId = sequenceId) val handler = PacketListener(commandName = commandName, sequenceId = sequenceId)
packetListeners.addLast(handler) packetListeners.addLast(handler)
bot.logger.info("Send: ${this.commandName}")
var lastException: Exception? = null var lastException: Exception? = null
repeat(retry + 1) { repeat(retry + 1) {
try { try {
@ -343,18 +342,19 @@ internal class QQAndroidBotNetworkHandler(bot: QQAndroidBot) : BotNetworkHandler
lastException = e lastException = e
} }
} }
packetListeners.remove(handler)
throw lastException!! throw lastException!!
} }
private suspend inline fun <E : Packet> OutgoingPacket.doSendAndReceive(timeoutMillis: Long = 3000, handler: PacketListener): E { private suspend inline fun <E : Packet> OutgoingPacket.doSendAndReceive(timeoutMillis: Long = 3000, handler: PacketListener): E {
channel.send(delegate) channel.send(delegate)
bot.logger.info("Send: ${this.commandName}")
return withTimeoutOrNull(timeoutMillis) { return withTimeoutOrNull(timeoutMillis) {
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
handler.await() as E handler.await() as E
// 不要 `withTimeout`. timeout 的异常会不知道去哪了. // 不要 `withTimeout`. timeout 的异常会不知道去哪了.
} ?: net.mamoe.mirai.qqandroid.utils.inline { } ?: net.mamoe.mirai.qqandroid.utils.inline {
packetListeners.remove(handler) error("timeout when receiving response of $commandName")
error("timeout when sending $commandName")
} }
} }

View File

@ -96,6 +96,8 @@ internal open class QQAndroidClient(
val apkVersionName: ByteArray = "8.2.0".toByteArray() val apkVersionName: ByteArray = "8.2.0".toByteArray()
private val messageSequenceId: AtomicInt = atomic(0)
internal fun atomicNextMessageSequenceId(): Int = messageSequenceId.getAndIncrement()
val appClientVersion: Int = 0 val appClientVersion: Int = 0

View File

@ -25,8 +25,9 @@ internal data class RequestPushNotify(
@SerialId(13) val svrip: Int? @SerialId(13) val svrip: Int?
) : JceStruct, Packet ) : JceStruct, Packet
@Suppress("ArrayInDataClass")
@Serializable @Serializable
internal class MsgInfo( internal data class MsgInfo(
@SerialId(0) val lFromUin: Long = 0L, @SerialId(0) val lFromUin: Long = 0L,
@SerialId(1) val uMsgTime: Long = 0L, @SerialId(1) val uMsgTime: Long = 0L,
@SerialId(2) val shMsgType: Short, @SerialId(2) val shMsgType: Short,
@ -51,7 +52,7 @@ internal class MsgInfo(
@Serializable @Serializable
class ShareData( internal class ShareData(
@SerialId(0) val pkgname: String = "", @SerialId(0) val pkgname: String = "",
@SerialId(1) val msgtail: String = "", @SerialId(1) val msgtail: String = "",
@SerialId(2) val picurl: String = "", @SerialId(2) val picurl: String = "",
@ -59,13 +60,13 @@ class ShareData(
) : JceStruct ) : JceStruct
@Serializable @Serializable
class TempMsgHead( internal class TempMsgHead(
@SerialId(0) val c2c_type: Int? = 0, @SerialId(0) val c2c_type: Int? = 0,
@SerialId(1) val serviceType: Int? = 0 @SerialId(1) val serviceType: Int? = 0
) : JceStruct ) : JceStruct
@Serializable @Serializable
class CPicInfo( internal class CPicInfo(
@SerialId(0) val vPath: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(0) val vPath: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(1) val vHost: ByteArray? = EMPTY_BYTE_ARRAY @SerialId(1) val vHost: ByteArray? = EMPTY_BYTE_ARRAY
) : JceStruct ) : JceStruct

View File

@ -8,7 +8,7 @@ import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
private val EMPTY_MAP = mapOf<String, String>() private val EMPTY_MAP = mapOf<String, String>()
@Serializable @Serializable
class RequestPacket( internal class RequestPacket(
@SerialId(1) val iVersion: Short = 3, @SerialId(1) val iVersion: Short = 3,
@SerialId(2) val cPacketType: Byte = 0, @SerialId(2) val cPacketType: Byte = 0,
@SerialId(3) val iMessageType: Int = 0, @SerialId(3) val iMessageType: Int = 0,
@ -22,16 +22,16 @@ class RequestPacket(
) : JceStruct ) : JceStruct
@Serializable @Serializable
class RequestDataVersion3( internal class RequestDataVersion3(
@SerialId(0) val map: Map<String, ByteArray> // 注意: ByteArray 不能直接放序列化的 JceStruct!! 要放类似 RequestDataStructSvcReqRegister 的 @SerialId(0) val map: Map<String, ByteArray> // 注意: ByteArray 不能直接放序列化的 JceStruct!! 要放类似 RequestDataStructSvcReqRegister 的
) : JceStruct ) : JceStruct
@Serializable @Serializable
class RequestDataVersion2( internal class RequestDataVersion2(
@SerialId(0) val map: Map<String, Map<String, ByteArray>> @SerialId(0) val map: Map<String, Map<String, ByteArray>>
) : JceStruct ) : JceStruct
@Serializable @Serializable
class RequestDataStructSvcReqRegister( internal class RequestDataStructSvcReqRegister(
@SerialId(0) val struct: SvcReqRegister @SerialId(0) val struct: SvcReqRegister
) : JceStruct ) : JceStruct

View File

@ -1,12 +1,11 @@
package net.mamoe.mirai.qqandroid.network.protocol.data.jce package net.mamoe.mirai.qqandroid.network.protocol.data.jce
import kotlinx.serialization.Polymorphic
import kotlinx.serialization.SerialId import kotlinx.serialization.SerialId
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import net.mamoe.mirai.qqandroid.io.JceStruct import net.mamoe.mirai.qqandroid.io.JceStruct
@Serializable @Serializable
class SvcReqRegister( internal class SvcReqRegister(
@SerialId(0) val lUin: Long = 0L, @SerialId(0) val lUin: Long = 0L,
@SerialId(1) val lBid: Long = 0L, @SerialId(1) val lBid: Long = 0L,
@SerialId(2) val cConnType: Byte = 0, @SerialId(2) val cConnType: Byte = 0,

View File

@ -6,9 +6,9 @@ import net.mamoe.mirai.qqandroid.io.ProtoBuf
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
@Serializable @Serializable
class Vec0xd50 : ProtoBuf { internal class Vec0xd50 : ProtoBuf {
@Serializable @Serializable
class ExtSnsFrdData( internal class ExtSnsFrdData(
@SerialId(1) val frdUin: Long = 0L, @SerialId(1) val frdUin: Long = 0L,
@SerialId(91001) val musicSwitch: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(91001) val musicSwitch: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(101001) val mutualmarkAlienation: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(101001) val mutualmarkAlienation: ByteArray = EMPTY_BYTE_ARRAY,
@ -18,7 +18,7 @@ class Vec0xd50 : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class RspBody( internal class RspBody(
@SerialId(1) val msgUpdateData: List<Vec0xd50.ExtSnsFrdData>? = null, @SerialId(1) val msgUpdateData: List<Vec0xd50.ExtSnsFrdData>? = null,
@SerialId(11) val over: Int = 0, @SerialId(11) val over: Int = 0,
@SerialId(12) val nextStart: Int = 0, @SerialId(12) val nextStart: Int = 0,
@ -26,7 +26,7 @@ class Vec0xd50 : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ReqBody( internal class ReqBody(
@SerialId(1) val appid: Long = 0L, @SerialId(1) val appid: Long = 0L,
@SerialId(2) val maxPkgSize: Int = 0, @SerialId(2) val maxPkgSize: Int = 0,
@SerialId(3) val startTime: Int = 0, @SerialId(3) val startTime: Int = 0,
@ -41,28 +41,28 @@ class Vec0xd50 : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class KSingRelationInfo( internal class KSingRelationInfo(
@SerialId(1) val flag: Int = 0 @SerialId(1) val flag: Int = 0
) : ProtoBuf ) : ProtoBuf
} }
@Serializable @Serializable
class Vec0xd6b : ProtoBuf { internal class Vec0xd6b : ProtoBuf {
@Serializable @Serializable
class ReqBody( internal class ReqBody(
@SerialId(1) val maxPkgSize: Int = 0, @SerialId(1) val maxPkgSize: Int = 0,
@SerialId(2) val startTime: Int = 0, @SerialId(2) val startTime: Int = 0,
@SerialId(11) val uinList: List<Long>? = null @SerialId(11) val uinList: List<Long>? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class RspBody( internal class RspBody(
@SerialId(11) val msgMutualmarkData: List<Vec0xd6b.MutualMarkData>? = null, @SerialId(11) val msgMutualmarkData: List<Vec0xd6b.MutualMarkData>? = null,
@SerialId(12) val uint64UnfinishedUins: List<Long>? = null @SerialId(12) val uint64UnfinishedUins: List<Long>? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class MutualMarkData( internal class MutualMarkData(
@SerialId(1) val frdUin: Long = 0L, @SerialId(1) val frdUin: Long = 0L,
@SerialId(2) val result: Int = 0 @SerialId(2) val result: Int = 0
// @SerialId(11) val mutualmarkInfo: List<Mutualmark.MutualMark>? = null // @SerialId(11) val mutualmarkInfo: List<Mutualmark.MutualMark>? = null
@ -70,9 +70,9 @@ class Vec0xd6b : ProtoBuf {
} }
@Serializable @Serializable
class Mutualmark : ProtoBuf { internal class Mutualmark : ProtoBuf {
@Serializable @Serializable
class MutualmarkInfo( internal class MutualmarkInfo(
@SerialId(1) val lastActionTime: Long = 0L, @SerialId(1) val lastActionTime: Long = 0L,
@SerialId(2) val level: Int = 0, @SerialId(2) val level: Int = 0,
@SerialId(3) val lastChangeTime: Long = 0L, @SerialId(3) val lastChangeTime: Long = 0L,
@ -86,7 +86,7 @@ class Mutualmark : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ResourceInfo17( internal class ResourceInfo17(
@SerialId(1) val dynamicUrl: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val dynamicUrl: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val staticUrl: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val staticUrl: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val cartoonUrl: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val cartoonUrl: ByteArray = EMPTY_BYTE_ARRAY,

View File

@ -2,8 +2,8 @@ package net.mamoe.mirai.qqandroid.network.protocol.data.proto
import kotlinx.serialization.SerialId import kotlinx.serialization.SerialId
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
import net.mamoe.mirai.qqandroid.io.ProtoBuf import net.mamoe.mirai.qqandroid.io.ProtoBuf
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
import net.mamoe.mirai.utils.currentTimeSeconds import net.mamoe.mirai.utils.currentTimeSeconds
interface ImgReq : ProtoBuf interface ImgReq : ProtoBuf

View File

@ -8,29 +8,29 @@ import net.mamoe.mirai.qqandroid.io.ProtoBuf
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
@Serializable @Serializable
class ImCommon : ProtoBuf { internal class ImCommon : ProtoBuf {
@Serializable @Serializable
class GroupInfo( internal class GroupInfo(
@SerialId(1) val groupId: Long = 0L, @SerialId(1) val groupId: Long = 0L,
@SerialId(2) val groupType: Int /* enum */ = 1 @SerialId(2) val groupType: Int /* enum */ = 1
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Signature( internal class Signature(
@SerialId(1) val keyType: Int = 0, @SerialId(1) val keyType: Int = 0,
@SerialId(2) val sessionAppId: Int = 0, @SerialId(2) val sessionAppId: Int = 0,
@SerialId(3) val sessionKey: ByteArray = EMPTY_BYTE_ARRAY @SerialId(3) val sessionKey: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Token( internal class Token(
@SerialId(1) val buf: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val buf: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val c2cType: Int = 0, @SerialId(2) val c2cType: Int = 0,
@SerialId(3) val serviceType: Int = 0 @SerialId(3) val serviceType: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class User( internal class User(
@SerialId(1) val uin: Long = 0L, @SerialId(1) val uin: Long = 0L,
@SerialId(2) val appId: Int = 0, @SerialId(2) val appId: Int = 0,
@SerialId(3) val instanceId: Int = 0, @SerialId(3) val instanceId: Int = 0,
@ -45,9 +45,9 @@ class ImCommon : ProtoBuf {
} }
@Serializable @Serializable
class ImImagent : ProtoBuf { internal class ImImagent : ProtoBuf {
@Serializable @Serializable
class ImAgentHead( internal class ImAgentHead(
@SerialId(1) val command: Int /* enum */ = 1, @SerialId(1) val command: Int /* enum */ = 1,
@SerialId(2) val seq: Int = 0, @SerialId(2) val seq: Int = 0,
@SerialId(3) val result: Int = 0, @SerialId(3) val result: Int = 0,
@ -61,21 +61,21 @@ class ImImagent : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ImAgentPackage( internal class ImAgentPackage(
@SerialId(1) val head: ImAgentHead? = null, @SerialId(1) val head: ImAgentHead? = null,
@SerialId(11) val msgSendReq: ImMsg.MsgSendReq? = null, @SerialId(11) val msgSendReq: ImMsg.MsgSendReq? = null,
@SerialId(12) val msgSendResp: ImMsg.MsgSendResp? = null @SerialId(12) val msgSendResp: ImMsg.MsgSendResp? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Requestinfo( internal class Requestinfo(
@ProtoType(ProtoNumberType.FIXED) @SerialId(1) val reqIp: Int = 0, @ProtoType(ProtoNumberType.FIXED) @SerialId(1) val reqIp: Int = 0,
@SerialId(2) val reqPort: Int = 0, @SerialId(2) val reqPort: Int = 0,
@SerialId(3) val reqFlag: Int = 0 @SerialId(3) val reqFlag: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Signature( internal class Signature(
@SerialId(1) val keyType: Int = 0, @SerialId(1) val keyType: Int = 0,
@SerialId(2) val sessionAppId: Int = 0, @SerialId(2) val sessionAppId: Int = 0,
@SerialId(3) val sessionKey: ByteArray = EMPTY_BYTE_ARRAY @SerialId(3) val sessionKey: ByteArray = EMPTY_BYTE_ARRAY
@ -83,23 +83,23 @@ class ImImagent : ProtoBuf {
} }
@Serializable @Serializable
class ImMsg : ProtoBuf { internal class ImMsg : ProtoBuf {
@Serializable @Serializable
class C2C( internal class C2C(
@SerialId(1) val sender: ImCommon.User? = null, @SerialId(1) val sender: ImCommon.User? = null,
@SerialId(2) val receiver: ImCommon.User? = null, @SerialId(2) val receiver: ImCommon.User? = null,
@SerialId(3) val c2cRelation: C2CRelation? = null @SerialId(3) val c2cRelation: C2CRelation? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class C2CRelation( internal class C2CRelation(
@SerialId(1) val c2cType: Int /* enum */ = 0, @SerialId(1) val c2cType: Int /* enum */ = 0,
@SerialId(2) val groupInfo: ImCommon.GroupInfo? = null, @SerialId(2) val groupInfo: ImCommon.GroupInfo? = null,
@SerialId(3) val token: ImCommon.Token? = null @SerialId(3) val token: ImCommon.Token? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ContentHead( internal class ContentHead(
@SerialId(1) val pkgNum: Int = 1, @SerialId(1) val pkgNum: Int = 1,
@SerialId(2) val pkgIndex: Int = 0, @SerialId(2) val pkgIndex: Int = 0,
@SerialId(3) val seq: Int = 0, @SerialId(3) val seq: Int = 0,
@ -113,27 +113,27 @@ class ImMsg : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Group( internal class Group(
@SerialId(1) val sender: ImCommon.User? = null, @SerialId(1) val sender: ImCommon.User? = null,
@SerialId(2) val receiver: ImCommon.User? = null, @SerialId(2) val receiver: ImCommon.User? = null,
@SerialId(3) val groupInfo: ImCommon.GroupInfo? = null @SerialId(3) val groupInfo: ImCommon.GroupInfo? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Msg( internal class Msg(
@SerialId(1) val head: MsgHead? = null, @SerialId(1) val head: MsgHead? = null,
@SerialId(2) val body: ImMsgBody.MsgBody? = null @SerialId(2) val body: ImMsgBody.MsgBody? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class MsgHead( internal class MsgHead(
@SerialId(1) val routingHead: RoutingHead? = null, @SerialId(1) val routingHead: RoutingHead? = null,
@SerialId(2) val contentHead: ContentHead? = null, @SerialId(2) val contentHead: ContentHead? = null,
@SerialId(3) val gbkTmpMsgBody: ByteArray = EMPTY_BYTE_ARRAY @SerialId(3) val gbkTmpMsgBody: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class MsgSendReq( internal class MsgSendReq(
@SerialId(1) val msg: Msg? = null, @SerialId(1) val msg: Msg? = null,
@SerialId(2) val buMsg: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val buMsg: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val msgTailId: Int = 0, @SerialId(3) val msgTailId: Int = 0,
@ -142,19 +142,19 @@ class ImMsg : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class MsgSendResp internal class MsgSendResp
@Serializable @Serializable
class RoutingHead( internal class RoutingHead(
@SerialId(1) val c2c: C2C? = null, @SerialId(1) val c2c: C2C? = null,
@SerialId(2) val group: Group? = null @SerialId(2) val group: Group? = null
) : ProtoBuf ) : ProtoBuf
} }
@Serializable @Serializable
class ImMsgBody : ProtoBuf { internal class ImMsgBody : ProtoBuf {
@Serializable @Serializable
class AnonymousGroupMsg( internal class AnonymousGroupMsg(
@SerialId(1) val flags: Int = 0, @SerialId(1) val flags: Int = 0,
@SerialId(2) val anonId: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val anonId: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val anonNick: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val anonNick: ByteArray = EMPTY_BYTE_ARRAY,
@ -165,7 +165,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ApolloActMsg( internal class ApolloActMsg(
@SerialId(1) val actionId: Int = 0, @SerialId(1) val actionId: Int = 0,
@SerialId(2) val actionName: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val actionName: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val actionText: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val actionText: ByteArray = EMPTY_BYTE_ARRAY,
@ -182,7 +182,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ArkAppElem( internal class ArkAppElem(
@SerialId(1) val appName: String = "", @SerialId(1) val appName: String = "",
@SerialId(2) val minVersion: String = "", @SerialId(2) val minVersion: String = "",
@SerialId(3) val xmlTemplate: String = "", @SerialId(3) val xmlTemplate: String = "",
@ -190,7 +190,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Attr( internal class Attr(
@ProtoType(ProtoNumberType.SIGNED) @SerialId(1) val codePage: Int = -1, @ProtoType(ProtoNumberType.SIGNED) @SerialId(1) val codePage: Int = -1,
@SerialId(2) val time: Int = 1, @SerialId(2) val time: Int = 1,
@SerialId(3) val random: Int = 0, @SerialId(3) val random: Int = 0,
@ -204,32 +204,32 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class BitAppMsg( internal class BitAppMsg(
@SerialId(1) val buf: ByteArray = EMPTY_BYTE_ARRAY @SerialId(1) val buf: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class BlessingMessage( internal class BlessingMessage(
@SerialId(1) val msgType: Int = 0, @SerialId(1) val msgType: Int = 0,
@SerialId(2) val exFlag: Int = 0 @SerialId(2) val exFlag: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class CommonElem( internal class CommonElem(
@SerialId(1) val serviceType: Int = 0, @SerialId(1) val serviceType: Int = 0,
@SerialId(2) val pbElem: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val pbElem: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val businessType: Int = 0 @SerialId(3) val businessType: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ConferenceTipsInfo( internal class ConferenceTipsInfo(
@SerialId(1) val sessionType: Int = 0, @SerialId(1) val sessionType: Int = 0,
@SerialId(2) val sessionUin: Long = 0L, @SerialId(2) val sessionUin: Long = 0L,
@SerialId(3) val text: String = "" @SerialId(3) val text: String = ""
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class CrmElem( internal class CrmElem(
@SerialId(1) val crmBuf: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val crmBuf: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val msgResid: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val qidianFlag: Int = 0, @SerialId(3) val qidianFlag: Int = 0,
@ -238,7 +238,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class CustomElem( internal class CustomElem(
@SerialId(1) val desc: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val desc: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val data: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val data: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val enumType: Int /* enum */ = 1, @SerialId(3) val enumType: Int /* enum */ = 1,
@ -247,7 +247,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class CustomFace( internal class CustomFace(
@SerialId(1) val guid: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val guid: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val filePath: String = "", @SerialId(2) val filePath: String = "",
@SerialId(3) val shortcut: String = "", @SerialId(3) val shortcut: String = "",
@ -285,7 +285,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class DeliverGiftMsg( internal class DeliverGiftMsg(
@SerialId(1) val grayTipContent: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val grayTipContent: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val animationPackageId: Int = 0, @SerialId(2) val animationPackageId: Int = 0,
@SerialId(3) val animationPackageUrlA: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val animationPackageUrlA: ByteArray = EMPTY_BYTE_ARRAY,
@ -311,13 +311,13 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class EIMInfo( internal class EIMInfo(
@SerialId(1) val rootId: Long = 0L, @SerialId(1) val rootId: Long = 0L,
@SerialId(2) val flag: Int = 0 @SerialId(2) val flag: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Elem( internal class Elem(
@SerialId(1) val text: Text? = null, @SerialId(1) val text: Text? = null,
@SerialId(2) val face: Face? = null, @SerialId(2) val face: Face? = null,
@SerialId(3) val onlineImage: OnlineImage? = null, @SerialId(3) val onlineImage: OnlineImage? = null,
@ -374,13 +374,13 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ElemFlags( internal class ElemFlags(
@SerialId(1) val flags1: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val flags1: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val businessData: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val businessData: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ElemFlags2( internal class ElemFlags2(
@SerialId(1) val colorTextId: Int = 0, @SerialId(1) val colorTextId: Int = 0,
@SerialId(2) val msgId: Long = 0L, @SerialId(2) val msgId: Long = 0L,
@SerialId(3) val whisperSessionId: Int = 0, @SerialId(3) val whisperSessionId: Int = 0,
@ -397,14 +397,14 @@ class ImMsgBody : ProtoBuf {
@SerialId(14) val crmFlags: Int = 0 @SerialId(14) val crmFlags: Int = 0
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class Inst( internal class Inst(
@SerialId(1) val appId: Int = 0, @SerialId(1) val appId: Int = 0,
@SerialId(2) val instId: Int = 0 @SerialId(2) val instId: Int = 0
) )
} }
@Serializable @Serializable
class ExtraInfo( internal class ExtraInfo(
@SerialId(1) val nick: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val nick: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val groupCard: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val groupCard: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val level: Int = 0, @SerialId(3) val level: Int = 0,
@ -420,29 +420,29 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Face( internal class Face(
@SerialId(1) val index: Int = 0, @SerialId(1) val index: Int = 0,
@SerialId(2) val old: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val old: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(11) val buf: ByteArray = EMPTY_BYTE_ARRAY @SerialId(11) val buf: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class FSJMessageElem( internal class FSJMessageElem(
@SerialId(1) val msgType: Int = 0 @SerialId(1) val msgType: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class FunFace( internal class FunFace(
@SerialId(1) val msgTurntable: Turntable? = null, @SerialId(1) val msgTurntable: Turntable? = null,
@SerialId(2) val msgBomb: Bomb? = null @SerialId(2) val msgBomb: Bomb? = null
) { ) {
@Serializable @Serializable
class Bomb( internal class Bomb(
@SerialId(1) val boolBurst: Boolean = false @SerialId(1) val boolBurst: Boolean = false
) )
@Serializable @Serializable
class Turntable( internal class Turntable(
@SerialId(1) val uint64UinList: List<Long>? = null, @SerialId(1) val uint64UinList: List<Long>? = null,
@SerialId(2) val hitUin: Long = 0L, @SerialId(2) val hitUin: Long = 0L,
@SerialId(3) val hitUinNick: String = "" @SerialId(3) val hitUinNick: String = ""
@ -450,7 +450,7 @@ class ImMsgBody : ProtoBuf {
} }
@Serializable @Serializable
class GeneralFlags( internal class GeneralFlags(
@SerialId(1) val bubbleDiyTextId: Int = 0, @SerialId(1) val bubbleDiyTextId: Int = 0,
@SerialId(2) val groupFlagNew: Int = 0, @SerialId(2) val groupFlagNew: Int = 0,
@SerialId(3) val uin: Long = 0L, @SerialId(3) val uin: Long = 0L,
@ -473,7 +473,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class GroupBusinessMsg( internal class GroupBusinessMsg(
@SerialId(1) val flags: Int = 0, @SerialId(1) val flags: Int = 0,
@SerialId(2) val headUrl: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val headUrl: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val headClkUrl: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val headClkUrl: ByteArray = EMPTY_BYTE_ARRAY,
@ -485,7 +485,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class GroupFile( internal class GroupFile(
@SerialId(1) val filename: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val filename: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val fileSize: Long = 0L, @SerialId(2) val fileSize: Long = 0L,
@SerialId(3) val fileId: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val fileId: ByteArray = EMPTY_BYTE_ARRAY,
@ -499,18 +499,18 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class GroupPostElem( internal class GroupPostElem(
@SerialId(1) val transType: Int = 0, @SerialId(1) val transType: Int = 0,
@SerialId(2) val transMsg: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val transMsg: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class GroupPubAccountInfo( internal class GroupPubAccountInfo(
@SerialId(1) val pubAccount: Long = 0L @SerialId(1) val pubAccount: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class LifeOnlineAccount( internal class LifeOnlineAccount(
@SerialId(1) val uniqueId: Long = 0L, @SerialId(1) val uniqueId: Long = 0L,
@SerialId(2) val op: Int = 0, @SerialId(2) val op: Int = 0,
@SerialId(3) val showTime: Int = 0, @SerialId(3) val showTime: Int = 0,
@ -523,20 +523,20 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class LightAppElem( internal class LightAppElem(
@SerialId(1) val data: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val data: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val msgResid: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val msgResid: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class LocationInfo( internal class LocationInfo(
@SerialId(1) val longitude: Double = 0.0, @SerialId(1) val longitude: Double = 0.0,
@SerialId(2) val latitude: Double = 0.0, @SerialId(2) val latitude: Double = 0.0,
@SerialId(3) val desc: ByteArray = EMPTY_BYTE_ARRAY @SerialId(3) val desc: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class LolaMsg( internal class LolaMsg(
@SerialId(1) val msgResid: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val encodeContent: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val encodeContent: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val longMsgUrl: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val longMsgUrl: ByteArray = EMPTY_BYTE_ARRAY,
@ -544,7 +544,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class LowVersionTips( internal class LowVersionTips(
@SerialId(1) val businessId: Int = 0, @SerialId(1) val businessId: Int = 0,
@SerialId(2) val sessionType: Int = 0, @SerialId(2) val sessionType: Int = 0,
@SerialId(3) val sessionUin: Long = 0L, @SerialId(3) val sessionUin: Long = 0L,
@ -553,7 +553,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class MarketFace( internal class MarketFace(
@SerialId(1) val faceName: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val faceName: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val itemType: Int = 0, @SerialId(2) val itemType: Int = 0,
@SerialId(3) val faceInfo: Int = 0, @SerialId(3) val faceInfo: Int = 0,
@ -570,7 +570,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class MarketTrans( internal class MarketTrans(
@SerialId(1) val int32Flag: Int = 0, @SerialId(1) val int32Flag: Int = 0,
@SerialId(2) val xml: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val xml: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val msgResid: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
@ -579,26 +579,26 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class MsgBody( internal class MsgBody(
@SerialId(1) val richText: RichText = RichText(), @SerialId(1) val richText: RichText = RichText(),
@SerialId(2) val msgContent: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val msgContent: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val msgEncryptContent: ByteArray = EMPTY_BYTE_ARRAY @SerialId(3) val msgEncryptContent: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class MsgBodySubtype4( internal class MsgBodySubtype4(
@SerialId(1) val msgNotOnlineFile: NotOnlineFile? = null, @SerialId(1) val msgNotOnlineFile: NotOnlineFile? = null,
@SerialId(2) val msgTime: Int = 0 @SerialId(2) val msgTime: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class NearByMessageType( internal class NearByMessageType(
@SerialId(1) val type: Int = 0, @SerialId(1) val type: Int = 0,
@SerialId(2) val identifyType: Int = 0 @SerialId(2) val identifyType: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class NotOnlineFile( internal class NotOnlineFile(
@SerialId(1) val fileType: Int = 0, @SerialId(1) val fileType: Int = 0,
@SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val fileUuid: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val fileUuid: ByteArray = EMPTY_BYTE_ARRAY,
@ -621,7 +621,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class NotOnlineImage( internal class NotOnlineImage(
@SerialId(1) val filePath: String = "", @SerialId(1) val filePath: String = "",
@SerialId(2) val fileLen: Int = 0, @SerialId(2) val fileLen: Int = 0,
@SerialId(3) val downloadPath: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val downloadPath: ByteArray = EMPTY_BYTE_ARRAY,
@ -654,25 +654,25 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class OnlineImage( internal class OnlineImage(
@SerialId(1) val guid: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val guid: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val filePath: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val filePath: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val oldVerSendFile: ByteArray = EMPTY_BYTE_ARRAY @SerialId(3) val oldVerSendFile: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class OpenQQData( internal class OpenQQData(
@SerialId(1) val carQqData: ByteArray = EMPTY_BYTE_ARRAY @SerialId(1) val carQqData: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PatsElem( internal class PatsElem(
@SerialId(1) val patType: Int = 0, @SerialId(1) val patType: Int = 0,
@SerialId(2) val patCount: Int = 0 @SerialId(2) val patCount: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PcSupportDef( internal class PcSupportDef(
@SerialId(1) val pcPtlBegin: Int = 0, @SerialId(1) val pcPtlBegin: Int = 0,
@SerialId(2) val pcPtlEnd: Int = 0, @SerialId(2) val pcPtlEnd: Int = 0,
@SerialId(3) val macPtlBegin: Int = 0, @SerialId(3) val macPtlBegin: Int = 0,
@ -682,7 +682,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Ptt( internal class Ptt(
@SerialId(1) val fileType: Int = 0, @SerialId(1) val fileType: Int = 0,
@SerialId(2) val srcUin: Long = 0L, @SerialId(2) val srcUin: Long = 0L,
@SerialId(3) val fileUuid: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val fileUuid: ByteArray = EMPTY_BYTE_ARRAY,
@ -710,7 +710,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PubAccInfo( internal class PubAccInfo(
@SerialId(1) val isInterNum: Int = 0, @SerialId(1) val isInterNum: Int = 0,
@SerialId(2) val ingMsgTemplateId: String = "", @SerialId(2) val ingMsgTemplateId: String = "",
@SerialId(3) val ingLongMsgUrl: String = "", @SerialId(3) val ingLongMsgUrl: String = "",
@ -718,13 +718,13 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PubAccount( internal class PubAccount(
@SerialId(1) val buf: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val buf: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val pubAccountUin: Long = 0L @SerialId(2) val pubAccountUin: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PubGroup( internal class PubGroup(
@SerialId(1) val nickname: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val nickname: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val gender: Int = 0, @SerialId(2) val gender: Int = 0,
@SerialId(3) val age: Int = 0, @SerialId(3) val age: Int = 0,
@ -732,7 +732,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class QQLiveOld( internal class QQLiveOld(
@SerialId(1) val subCmd: Int = 0, @SerialId(1) val subCmd: Int = 0,
@SerialId(2) val showText: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val showText: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val param: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val param: ByteArray = EMPTY_BYTE_ARRAY,
@ -740,7 +740,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class QQWalletAioBody( internal class QQWalletAioBody(
@SerialId(1) val senduin: Long = 0L, @SerialId(1) val senduin: Long = 0L,
@SerialId(2) val sender: QQWalletAioElem? = null, @SerialId(2) val sender: QQWalletAioElem? = null,
@SerialId(3) val receiver: QQWalletAioElem? = null, @SerialId(3) val receiver: QQWalletAioElem? = null,
@ -765,7 +765,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class QQWalletAioElem( internal class QQWalletAioElem(
@SerialId(1) val background: Int = 0, @SerialId(1) val background: Int = 0,
@SerialId(2) val icon: Int = 0, @SerialId(2) val icon: Int = 0,
@SerialId(3) val title: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val title: ByteArray = EMPTY_BYTE_ARRAY,
@ -790,17 +790,17 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class QQWalletMsg( internal class QQWalletMsg(
@SerialId(1) val aioBody: QQWalletAioBody? = null @SerialId(1) val aioBody: QQWalletAioBody? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class RedBagInfo( internal class RedBagInfo(
@SerialId(1) val redbagType: Int = 0 @SerialId(1) val redbagType: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class RichMsg( internal class RichMsg(
@SerialId(1) val template1: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val template1: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val serviceId: Int = 0, @SerialId(2) val serviceId: Int = 0,
@SerialId(3) val msgResid: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
@ -810,17 +810,17 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class RichText( internal class RichText(
@SerialId(1) val attr: Attr? = null, @SerialId(1) val attr: Attr? = null,
@SerialId(2) val elems: MutableList<Elem> = mutableListOf(), @SerialId(2) val elems: MutableList<Elem> = mutableListOf(),
@SerialId(3) val notOnlineFile: NotOnlineFile? =null, @SerialId(3) val notOnlineFile: NotOnlineFile? = null,
@SerialId(4) val ptt: Ptt? =null, @SerialId(4) val ptt: Ptt? = null,
@SerialId(5) val tmpPtt: TmpPtt? = null, @SerialId(5) val tmpPtt: TmpPtt? = null,
@SerialId(6) val trans211TmpMsg: Trans211TmpMsg? = null @SerialId(6) val trans211TmpMsg: Trans211TmpMsg? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class SecretFileMsg( internal class SecretFileMsg(
@SerialId(1) val fileKey: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val fileKey: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val fromUin: Long = 0L, @SerialId(2) val fromUin: Long = 0L,
@SerialId(3) val toUin: Long = 0L, @SerialId(3) val toUin: Long = 0L,
@ -839,20 +839,20 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ShakeWindow( internal class ShakeWindow(
@SerialId(1) val type: Int = 0, @SerialId(1) val type: Int = 0,
@SerialId(2) val reserve: Int = 0, @SerialId(2) val reserve: Int = 0,
@SerialId(3) val uin: Long = 0L @SerialId(3) val uin: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class SmallEmoji( internal class SmallEmoji(
@SerialId(1) val packIdSum: Int = 0, @SerialId(1) val packIdSum: Int = 0,
@SerialId(2) val imageType: Int = 0 @SerialId(2) val imageType: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class SourceMsg( internal class SourceMsg(
@SerialId(1) val origSeqs: List<Int>? = null, @SerialId(1) val origSeqs: List<Int>? = null,
@SerialId(2) val senderUin: Long = 0L, @SerialId(2) val senderUin: Long = 0L,
@SerialId(3) val time: Int = 0, @SerialId(3) val time: Int = 0,
@ -867,7 +867,7 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Text( internal class Text(
@SerialId(1) val str: String = "", @SerialId(1) val str: String = "",
@SerialId(2) val link: String = "", @SerialId(2) val link: String = "",
@SerialId(3) val attr6Buf: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val attr6Buf: ByteArray = EMPTY_BYTE_ARRAY,
@ -877,12 +877,12 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class TipsInfo( internal class TipsInfo(
@SerialId(1) val text: String = "" @SerialId(1) val text: String = ""
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class TmpPtt( internal class TmpPtt(
@SerialId(1) val fileType: Int = 0, @SerialId(1) val fileType: Int = 0,
@SerialId(2) val fileUuid: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val fileUuid: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val fileMd5: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
@ -898,19 +898,19 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Trans211TmpMsg( internal class Trans211TmpMsg(
@SerialId(1) val msgBody: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val msgBody: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val c2cCmd: Int = 0 @SerialId(2) val c2cCmd: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class TransElem( internal class TransElem(
@SerialId(1) val elemType: Int = 0, @SerialId(1) val elemType: Int = 0,
@SerialId(2) val elemValue: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val elemValue: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class VideoFile( internal class VideoFile(
@SerialId(1) val fileUuid: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val fileUuid: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val fileMd5: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val fileName: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val fileName: ByteArray = EMPTY_BYTE_ARRAY,
@ -938,16 +938,16 @@ class ImMsgBody : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class WorkflowNotifyMsg( internal class WorkflowNotifyMsg(
@SerialId(1) val extMsg: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val extMsg: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val createUin: Long = 0L @SerialId(2) val createUin: Long = 0L
) : ProtoBuf ) : ProtoBuf
} }
@Serializable @Serializable
class ImMsgHead : ProtoBuf { internal class ImMsgHead : ProtoBuf {
@Serializable @Serializable
class C2CHead( internal class C2CHead(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val fromUin: Long = 0L, @SerialId(2) val fromUin: Long = 0L,
@SerialId(3) val ccType: Int = 0, @SerialId(3) val ccType: Int = 0,
@ -962,7 +962,7 @@ class ImMsgHead : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class CSHead( internal class CSHead(
@SerialId(1) val uin: Long = 0L, @SerialId(1) val uin: Long = 0L,
@SerialId(2) val command: Int = 0, @SerialId(2) val command: Int = 0,
@SerialId(3) val seq: Int = 0, @SerialId(3) val seq: Int = 0,
@ -990,7 +990,7 @@ class ImMsgHead : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class DeltaHead( internal class DeltaHead(
@SerialId(1) val totalLen: Long = 0L, @SerialId(1) val totalLen: Long = 0L,
@SerialId(2) val offset: Long = 0L, @SerialId(2) val offset: Long = 0L,
@SerialId(3) val ackOffset: Long = 0L, @SerialId(3) val ackOffset: Long = 0L,
@ -1001,7 +1001,7 @@ class ImMsgHead : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Head( internal class Head(
@SerialId(1) val headType: Int = 0, @SerialId(1) val headType: Int = 0,
@SerialId(2) val msgCsHead: CSHead? = null, @SerialId(2) val msgCsHead: CSHead? = null,
@SerialId(3) val msgS2cHead: S2CHead? = null, @SerialId(3) val msgS2cHead: S2CHead? = null,
@ -1015,7 +1015,7 @@ class ImMsgHead : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class HttpConnHead( internal class HttpConnHead(
@SerialId(1) val uin: Long = 0L, @SerialId(1) val uin: Long = 0L,
@SerialId(2) val command: Int = 0, @SerialId(2) val command: Int = 0,
@SerialId(3) val subCommand: Int = 0, @SerialId(3) val subCommand: Int = 0,
@ -1044,14 +1044,14 @@ class ImMsgHead : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class InstCtrl( internal class InstCtrl(
@SerialId(1) val msgSendToInst: List<InstInfo>? = listOf(), @SerialId(1) val msgSendToInst: List<InstInfo>? = listOf(),
@SerialId(2) val msgExcludeInst: List<InstInfo>? = listOf(), @SerialId(2) val msgExcludeInst: List<InstInfo>? = listOf(),
@SerialId(3) val msgFromInst: InstInfo? = InstInfo() @SerialId(3) val msgFromInst: InstInfo? = InstInfo()
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class InstInfo( internal class InstInfo(
@SerialId(1) val apppid: Int = 0, @SerialId(1) val apppid: Int = 0,
@SerialId(2) val instid: Int = 0, @SerialId(2) val instid: Int = 0,
@SerialId(3) val platform: Int = 0, @SerialId(3) val platform: Int = 0,
@ -1059,13 +1059,13 @@ class ImMsgHead : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class LoginSig( internal class LoginSig(
@SerialId(1) val type: Int = 0, @SerialId(1) val type: Int = 0,
@SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class RedirectMsg( internal class RedirectMsg(
@ProtoType(ProtoNumberType.FIXED) @SerialId(1) val lastRedirectIp: Int = 0, @ProtoType(ProtoNumberType.FIXED) @SerialId(1) val lastRedirectIp: Int = 0,
@SerialId(2) val lastRedirectPort: Int = 0, @SerialId(2) val lastRedirectPort: Int = 0,
@ProtoType(ProtoNumberType.FIXED) @SerialId(3) val redirectIp: Int = 0, @ProtoType(ProtoNumberType.FIXED) @SerialId(3) val redirectIp: Int = 0,
@ -1074,7 +1074,7 @@ class ImMsgHead : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class S2CHead( internal class S2CHead(
@SerialId(1) val subMsgtype: Int = 0, @SerialId(1) val subMsgtype: Int = 0,
@SerialId(2) val msgType: Int = 0, @SerialId(2) val msgType: Int = 0,
@SerialId(3) val fromUin: Long = 0L, @SerialId(3) val fromUin: Long = 0L,
@ -1085,10 +1085,10 @@ class ImMsgHead : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class SConnHead : ProtoBuf internal class SConnHead : ProtoBuf
@Serializable @Serializable
class TransOidbHead( internal class TransOidbHead(
@SerialId(1) val command: Int = 0, @SerialId(1) val command: Int = 0,
@SerialId(2) val serviceType: Int = 0, @SerialId(2) val serviceType: Int = 0,
@SerialId(3) val result: Int = 0, @SerialId(3) val result: Int = 0,
@ -1097,9 +1097,9 @@ class ImMsgHead : ProtoBuf {
} }
@Serializable @Serializable
class ImReceipt : ProtoBuf { internal class ImReceipt : ProtoBuf {
@Serializable @Serializable
class MsgInfo( internal class MsgInfo(
@SerialId(1) val fromUin: Long = 0L, @SerialId(1) val fromUin: Long = 0L,
@SerialId(2) val toUin: Long = 0L, @SerialId(2) val toUin: Long = 0L,
@SerialId(3) val msgSeq: Int = 0, @SerialId(3) val msgSeq: Int = 0,
@ -1107,32 +1107,32 @@ class ImReceipt : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
data class ReceiptInfo( data internal class ReceiptInfo(
@SerialId(1) val readTime: Long = 0L @SerialId(1) val readTime: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ReceiptReq( internal class ReceiptReq(
@SerialId(1) val command: Int /* enum */ = 1, @SerialId(1) val command: Int /* enum */ = 1,
@SerialId(2) val msgInfo: MsgInfo? = null @SerialId(2) val msgInfo: MsgInfo? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
data class ReceiptResp( data internal class ReceiptResp(
@SerialId(1) val command: Int /* enum */ = 1, @SerialId(1) val command: Int /* enum */ = 1,
@SerialId(2) val receiptInfo: ReceiptInfo? = null @SerialId(2) val receiptInfo: ReceiptInfo? = null
) : ProtoBuf ) : ProtoBuf
} }
@Serializable @Serializable
class ObjMsg : ProtoBuf { internal class ObjMsg : ProtoBuf {
@Serializable @Serializable
class MsgContentInfo( internal class MsgContentInfo(
@SerialId(1) val contentInfoId: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val contentInfoId: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val msgFile: MsgFile? = null @SerialId(2) val msgFile: MsgFile? = null
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class MsgFile( internal class MsgFile(
@SerialId(1) val busId: Int = 0, @SerialId(1) val busId: Int = 0,
@SerialId(2) val filePath: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val filePath: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val fileSize: Long = 0L, @SerialId(3) val fileSize: Long = 0L,
@ -1144,14 +1144,14 @@ class ObjMsg : ProtoBuf {
} }
@Serializable @Serializable
class MsgPic( internal class MsgPic(
@SerialId(1) val smallPicUrl: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val smallPicUrl: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val originalPicUrl: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val originalPicUrl: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val localPicId: Int = 0 @SerialId(3) val localPicId: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ObjMsg( internal class ObjMsg(
@SerialId(1) val msgType: Int = 0, @SerialId(1) val msgType: Int = 0,
@SerialId(2) val title: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val title: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val bytesAbstact: List<ByteArray>? = null, @SerialId(3) val bytesAbstact: List<ByteArray>? = null,
@ -1163,9 +1163,9 @@ class ObjMsg : ProtoBuf {
} }
@Serializable @Serializable
class Submsgtype0xc7 : ProtoBuf { internal class Submsgtype0xc7 : ProtoBuf {
@Serializable @Serializable
class RelationalChainChange( internal class RelationalChainChange(
@SerialId(1) val appid: Long = 0L, @SerialId(1) val appid: Long = 0L,
@SerialId(2) val srcUin: Long = 0L, @SerialId(2) val srcUin: Long = 0L,
@SerialId(3) val dstUin: Long = 0L, @SerialId(3) val dstUin: Long = 0L,
@ -1178,7 +1178,7 @@ class Submsgtype0xc7 : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class FriendShipFlagNotify( internal class FriendShipFlagNotify(
@SerialId(1) val dstUin: Long = 0L, @SerialId(1) val dstUin: Long = 0L,
@SerialId(2) val level1: Int = 0, @SerialId(2) val level1: Int = 0,
@SerialId(3) val level2: Int = 0, @SerialId(3) val level2: Int = 0,
@ -1190,7 +1190,7 @@ class Submsgtype0xc7 : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ToDegradeItem( internal class ToDegradeItem(
@SerialId(1) val type: Int /* enum */ = 1, @SerialId(1) val type: Int /* enum */ = 1,
@SerialId(2) val oldLevel: Int = 0, @SerialId(2) val oldLevel: Int = 0,
@SerialId(3) val newLevel: Int = 0, @SerialId(3) val newLevel: Int = 0,
@ -1199,7 +1199,7 @@ class Submsgtype0xc7 : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class RelationalChainInfo( internal class RelationalChainInfo(
@SerialId(1) val type: Int /* enum */ = 1, @SerialId(1) val type: Int /* enum */ = 1,
@SerialId(2) val attr: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val attr: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(1002) val intimateInfo: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1002) val intimateInfo: ByteArray = EMPTY_BYTE_ARRAY,
@ -1208,7 +1208,7 @@ class Submsgtype0xc7 : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ForwardBody( internal class ForwardBody(
@SerialId(1) val notifyType: Int = 0, @SerialId(1) val notifyType: Int = 0,
@SerialId(2) val opType: Int = 0, @SerialId(2) val opType: Int = 0,
@SerialId(3000) val msgHotFriendNotify: Submsgtype0xc7.HotFriendNotify? = null, @SerialId(3000) val msgHotFriendNotify: Submsgtype0xc7.HotFriendNotify? = null,
@ -1216,7 +1216,7 @@ class Submsgtype0xc7 : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class HotFriendNotify( internal class HotFriendNotify(
@SerialId(1) val dstUin: Long = 0L, @SerialId(1) val dstUin: Long = 0L,
@SerialId(2) val praiseHotLevel: Int = 0, @SerialId(2) val praiseHotLevel: Int = 0,
@SerialId(3) val chatHotLevel: Int = 0, @SerialId(3) val chatHotLevel: Int = 0,
@ -1257,20 +1257,20 @@ class Submsgtype0xc7 : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class RelationalChainInfos( internal class RelationalChainInfos(
@SerialId(1) val msgRelationalChainInfoOld: Submsgtype0xc7.RelationalChainInfo? = null, @SerialId(1) val msgRelationalChainInfoOld: Submsgtype0xc7.RelationalChainInfo? = null,
@SerialId(2) val msgRelationalChainInfoNew: Submsgtype0xc7.RelationalChainInfo? = null @SerialId(2) val msgRelationalChainInfoNew: Submsgtype0xc7.RelationalChainInfo? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ToDegradeInfo( internal class ToDegradeInfo(
@SerialId(1) val toDegradeItem: List<Submsgtype0xc7.ToDegradeItem>? = null, @SerialId(1) val toDegradeItem: List<Submsgtype0xc7.ToDegradeItem>? = null,
@SerialId(2) val nick: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val nick: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val notifyTime: Long = 0L @SerialId(3) val notifyTime: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class MsgBody( internal class MsgBody(
@SerialId(1) val msgModInfos: List<Submsgtype0xc7.ForwardBody>? = null @SerialId(1) val msgModInfos: List<Submsgtype0xc7.ForwardBody>? = null
) : ProtoBuf ) : ProtoBuf
} }

View File

@ -9,16 +9,16 @@ import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
* msf.msgcomm.msg_comm * msf.msgcomm.msg_comm
*/ */
@Serializable @Serializable
class MsgComm : ProtoBuf { internal class MsgComm : ProtoBuf {
@Serializable @Serializable
class AppShareInfo( internal class AppShareInfo(
@SerialId(1) val appshareId: Int = 0, @SerialId(1) val appshareId: Int = 0,
@SerialId(2) val appshareCookie: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val appshareCookie: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val appshareResource: PluginInfo? = null @SerialId(3) val appshareResource: PluginInfo? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class C2CTmpMsgHead( internal class C2CTmpMsgHead(
@SerialId(1) val c2cType: Int = 0, @SerialId(1) val c2cType: Int = 0,
@SerialId(2) val serviceType: Int = 0, @SerialId(2) val serviceType: Int = 0,
@SerialId(3) val groupUin: Long = 0L, @SerialId(3) val groupUin: Long = 0L,
@ -33,7 +33,7 @@ class MsgComm : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ContentHead( internal class ContentHead(
@SerialId(1) val pkgNum: Int = 0, @SerialId(1) val pkgNum: Int = 0,
@SerialId(2) val pkgIndex: Int = 0, @SerialId(2) val pkgIndex: Int = 0,
@SerialId(3) val divSeq: Int = 0, @SerialId(3) val divSeq: Int = 0,
@ -41,7 +41,7 @@ class MsgComm : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class DiscussInfo( internal class DiscussInfo(
@SerialId(1) val discussUin: Long = 0L, @SerialId(1) val discussUin: Long = 0L,
@SerialId(2) val discussType: Int = 0, @SerialId(2) val discussType: Int = 0,
@SerialId(3) val discussInfoSeq: Long = 0L, @SerialId(3) val discussInfoSeq: Long = 0L,
@ -50,13 +50,13 @@ class MsgComm : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ExtGroupKeyInfo( internal class ExtGroupKeyInfo(
@SerialId(1) val curMaxSeq: Int = 0, @SerialId(1) val curMaxSeq: Int = 0,
@SerialId(2) val curTime: Long = 0L @SerialId(2) val curTime: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class GroupInfo( internal class GroupInfo(
@SerialId(1) val groupCode: Long = 0L, @SerialId(1) val groupCode: Long = 0L,
@SerialId(2) val groupType: Int = 0, @SerialId(2) val groupType: Int = 0,
@SerialId(3) val groupInfoSeq: Long = 0L, @SerialId(3) val groupInfoSeq: Long = 0L,
@ -68,7 +68,7 @@ class MsgComm : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Msg( internal class Msg(
@SerialId(1) val msgHead: MsgHead, @SerialId(1) val msgHead: MsgHead,
@SerialId(2) val contentHead: ContentHead? = null, @SerialId(2) val contentHead: ContentHead? = null,
@SerialId(3) val msgBody: ImMsgBody.MsgBody, @SerialId(3) val msgBody: ImMsgBody.MsgBody,
@ -76,7 +76,7 @@ class MsgComm : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class MsgHead( internal class MsgHead(
@SerialId(1) val fromUin: Long = 0L, @SerialId(1) val fromUin: Long = 0L,
@SerialId(2) val toUin: Long = 0L, @SerialId(2) val toUin: Long = 0L,
@SerialId(3) val msgType: Int = 0, @SerialId(3) val msgType: Int = 0,
@ -108,19 +108,19 @@ class MsgComm : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class MsgType0x210( internal class MsgType0x210(
@SerialId(1) val subMsgType: Int = 0, @SerialId(1) val subMsgType: Int = 0,
@SerialId(2) val msgContent: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val msgContent: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class MutilTransHead( internal class MutilTransHead(
@SerialId(1) val status: Int = 0, @SerialId(1) val status: Int = 0,
@SerialId(2) val msgId: Int = 0 @SerialId(2) val msgId: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PluginInfo( internal class PluginInfo(
@SerialId(1) val resId: Int = 0, @SerialId(1) val resId: Int = 0,
@SerialId(2) val pkgName: String = "", @SerialId(2) val pkgName: String = "",
@SerialId(3) val newVer: Int = 0, @SerialId(3) val newVer: Int = 0,
@ -135,13 +135,13 @@ class MsgComm : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Uin2Nick( internal class Uin2Nick(
@SerialId(1) val uin: Long = 0L, @SerialId(1) val uin: Long = 0L,
@SerialId(2) val nick: String = "" @SerialId(2) val nick: String = ""
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class UinPairMsg( internal class UinPairMsg(
@SerialId(1) val lastReadTime: Int = 0, @SerialId(1) val lastReadTime: Int = 0,
@SerialId(2) val peerUin: Long = 0L, @SerialId(2) val peerUin: Long = 0L,
@SerialId(3) val msgCompleted: Int = 0, @SerialId(3) val msgCompleted: Int = 0,

View File

@ -7,14 +7,14 @@ import net.mamoe.mirai.qqandroid.io.ProtoBuf
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
@Serializable @Serializable
class MsgSvc : ProtoBuf { internal class MsgSvc : ProtoBuf {
@Serializable @Serializable
class Grp( internal class Grp(
@SerialId(1) val groupCode: Long = 0L @SerialId(1) val groupCode: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbGetMsgResp( internal class PbGetMsgResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY,
@ -28,7 +28,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbGroupMsgWithDrawReq( internal class PbGroupMsgWithDrawReq(
@SerialId(1) val subCmd: Int = 0, @SerialId(1) val subCmd: Int = 0,
@SerialId(2) val groupType: Int = 0, @SerialId(2) val groupType: Int = 0,
@SerialId(3) val groupCode: Long = 0L, @SerialId(3) val groupCode: Long = 0L,
@ -36,7 +36,7 @@ class MsgSvc : ProtoBuf {
@SerialId(5) val userdef: ByteArray = EMPTY_BYTE_ARRAY @SerialId(5) val userdef: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class MessageInfo( internal class MessageInfo(
@SerialId(1) val msgSeq: Int = 0, @SerialId(1) val msgSeq: Int = 0,
@SerialId(2) val msgRandom: Int = 0, @SerialId(2) val msgRandom: Int = 0,
@SerialId(3) val msgType: Int = 0 @SerialId(3) val msgType: Int = 0
@ -44,25 +44,25 @@ class MsgSvc : ProtoBuf {
} }
@Serializable @Serializable
class PbGroupReadedReportReq( internal class PbGroupReadedReportReq(
@SerialId(1) val groupCode: Long = 0L, @SerialId(1) val groupCode: Long = 0L,
@SerialId(2) val lastReadSeq: Long = 0L @SerialId(2) val lastReadSeq: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class BusinessWPATmp( internal class BusinessWPATmp(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val sigt: ByteArray = EMPTY_BYTE_ARRAY @SerialId(3) val sigt: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class C2C( internal class C2C(
@SerialId(1) val toUin: Long = 0L @SerialId(1) val toUin: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbGetGroupMsgReq( internal class PbGetGroupMsgReq(
@SerialId(1) val groupCode: Long = 0L, @SerialId(1) val groupCode: Long = 0L,
@SerialId(2) val beginSeq: Long = 0L, @SerialId(2) val beginSeq: Long = 0L,
@SerialId(3) val endSeq: Long = 0L, @SerialId(3) val endSeq: Long = 0L,
@ -74,20 +74,20 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbBindUinMsgReadedConfirmReq( internal class PbBindUinMsgReadedConfirmReq(
@SerialId(1) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val bindUin: Long = 0L @SerialId(2) val bindUin: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class AccostTmp( internal class AccostTmp(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val reply: Boolean = false @SerialId(3) val reply: Boolean = false
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbDiscussReadedReportResp( internal class PbDiscussReadedReportResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val confUin: Long = 0L, @SerialId(3) val confUin: Long = 0L,
@ -96,26 +96,26 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class NearByAssistantTmp( internal class NearByAssistantTmp(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val reply: Boolean = false @SerialId(3) val reply: Boolean = false
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
data class MsgSendInfo( internal data class MsgSendInfo(
@SerialId(1) val receiver: Int = 0 @SerialId(1) val receiver: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PubGroupTmp( internal class PubGroupTmp(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val groupUin: Long = 0L @SerialId(3) val groupUin: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class AddressListTmp( internal class AddressListTmp(
@SerialId(1) val fromPhone: String = "", @SerialId(1) val fromPhone: String = "",
@SerialId(2) val toPhone: String = "", @SerialId(2) val toPhone: String = "",
@SerialId(3) val toUin: Long = 0L, @SerialId(3) val toUin: Long = 0L,
@ -124,31 +124,31 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class DisTmp( internal class DisTmp(
@SerialId(1) val disUin: Long = 0L, @SerialId(1) val disUin: Long = 0L,
@SerialId(2) val toUin: Long = 0L @SerialId(2) val toUin: Long = 0L
) )
@Serializable @Serializable
class PbMsgWithDrawResp( internal class PbMsgWithDrawResp(
@SerialId(1) val c2cWithDraw: List<PbC2CMsgWithDrawResp>? = null, @SerialId(1) val c2cWithDraw: List<PbC2CMsgWithDrawResp>? = null,
@SerialId(2) val groupWithDraw: List<PbGroupMsgWithDrawResp>? = null @SerialId(2) val groupWithDraw: List<PbGroupMsgWithDrawResp>? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class AuthTmp( internal class AuthTmp(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbMsgWithDrawReq( internal class PbMsgWithDrawReq(
@SerialId(1) val c2cWithDraw: List<PbC2CMsgWithDrawReq>? = null, @SerialId(1) val c2cWithDraw: List<PbC2CMsgWithDrawReq>? = null,
@SerialId(2) val groupWithDraw: List<PbGroupMsgWithDrawReq>? = null @SerialId(2) val groupWithDraw: List<PbGroupMsgWithDrawReq>? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbGetMsgReq( internal class PbGetMsgReq(
@SerialId(1) val syncFlag: Int /* enum */ = 0, @SerialId(1) val syncFlag: Int /* enum */ = 0,
@SerialId(2) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val rambleFlag: Int = 1, @SerialId(3) val rambleFlag: Int = 1,
@ -164,7 +164,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbGetOneDayRoamMsgReq( internal class PbGetOneDayRoamMsgReq(
@SerialId(1) val peerUin: Long = 0L, @SerialId(1) val peerUin: Long = 0L,
@SerialId(2) val lastMsgtime: Long = 0L, @SerialId(2) val lastMsgtime: Long = 0L,
@SerialId(3) val random: Long = 0L, @SerialId(3) val random: Long = 0L,
@ -172,13 +172,13 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class GrpTmp( internal class GrpTmp(
@SerialId(1) val groupUin: Long = 0L, @SerialId(1) val groupUin: Long = 0L,
@SerialId(2) val toUin: Long = 0L @SerialId(2) val toUin: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbGetDiscussMsgResp( internal class PbGetDiscussMsgResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val discussUin: Long = 0L, @SerialId(3) val discussUin: Long = 0L,
@ -190,7 +190,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class CommTmp( internal class CommTmp(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val c2cType: Int = 0, @SerialId(2) val c2cType: Int = 0,
@SerialId(3) val svrType: Int = 0, @SerialId(3) val svrType: Int = 0,
@ -199,7 +199,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbGroupMsgWithDrawResp( internal class PbGroupMsgWithDrawResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val subCmd: Int = 0, @SerialId(3) val subCmd: Int = 0,
@ -209,7 +209,7 @@ class MsgSvc : ProtoBuf {
@SerialId(7) val userdef: ByteArray = EMPTY_BYTE_ARRAY @SerialId(7) val userdef: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class MessageResult( internal class MessageResult(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val msgSeq: Int = 0, @SerialId(2) val msgSeq: Int = 0,
@SerialId(3) val msgTime: Int = 0, @SerialId(3) val msgTime: Int = 0,
@ -220,24 +220,24 @@ class MsgSvc : ProtoBuf {
} }
@Serializable @Serializable
class PbC2CReadedReportResp( internal class PbC2CReadedReportResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY @SerialId(3) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbC2CUnReadMsgNumReq : ProtoBuf internal class PbC2CUnReadMsgNumReq : ProtoBuf
@Serializable @Serializable
class PbC2CMsgWithDrawReq( internal class PbC2CMsgWithDrawReq(
@SerialId(1) val msgInfo: List<MsgInfo>? = null, @SerialId(1) val msgInfo: List<MsgInfo>? = null,
@SerialId(2) val longMessageFlag: Int = 0, @SerialId(2) val longMessageFlag: Int = 0,
@SerialId(3) val reserved: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val reserved: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(4) val subCmd: Int = 0 @SerialId(4) val subCmd: Int = 0
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class MsgInfo( internal class MsgInfo(
@SerialId(1) val fromUin: Long = 0L, @SerialId(1) val fromUin: Long = 0L,
@SerialId(2) val toUin: Long = 0L, @SerialId(2) val toUin: Long = 0L,
@SerialId(3) val msgSeq: Int = 0, @SerialId(3) val msgSeq: Int = 0,
@ -253,18 +253,18 @@ class MsgSvc : ProtoBuf {
} }
@Serializable @Serializable
class PbDelRoamMsgResp( internal class PbDelRoamMsgResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "" @SerialId(2) val errmsg: String = ""
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class Dis( internal class Dis(
@SerialId(1) val disUin: Long = 0L @SerialId(1) val disUin: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class TransSvrInfo( internal class TransSvrInfo(
@SerialId(1) val subType: Int = 0, @SerialId(1) val subType: Int = 0,
@SerialId(2) val int32RetCode: Int = 0, @SerialId(2) val int32RetCode: Int = 0,
@SerialId(3) val errMsg: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val errMsg: ByteArray = EMPTY_BYTE_ARRAY,
@ -272,13 +272,13 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbPullGroupMsgSeqResp( internal class PbPullGroupMsgSeqResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val groupInfoResp: List<GroupInfoResp>? = null @SerialId(3) val groupInfoResp: List<GroupInfoResp>? = null
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class GroupInfoResp( internal class GroupInfoResp(
@SerialId(1) val groupCode: Long = 0L, @SerialId(1) val groupCode: Long = 0L,
@SerialId(2) val memberSeq: Long = 0L, @SerialId(2) val memberSeq: Long = 0L,
@SerialId(3) val groupSeq: Long = 0L @SerialId(3) val groupSeq: Long = 0L
@ -286,7 +286,7 @@ class MsgSvc : ProtoBuf {
} }
@Serializable @Serializable
class PbSendMsgReq( internal class PbSendMsgReq(
@SerialId(1) val routingHead: RoutingHead? = null, @SerialId(1) val routingHead: RoutingHead? = null,
@SerialId(2) val contentHead: MsgComm.ContentHead? = null, @SerialId(2) val contentHead: MsgComm.ContentHead? = null,
@SerialId(3) val msgBody: ImMsgBody.MsgBody = ImMsgBody.MsgBody(), @SerialId(3) val msgBody: ImMsgBody.MsgBody = ImMsgBody.MsgBody(),
@ -304,25 +304,25 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class TransMsg( internal class TransMsg(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val c2cCmd: Int = 0 @SerialId(2) val c2cCmd: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbDeleteMsgResp( internal class PbDeleteMsgResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "" @SerialId(2) val errmsg: String = ""
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbSearchRoamMsgInCloudResp( internal class PbSearchRoamMsgInCloudResp(
@SerialId(1) val msg: List<MsgComm.Msg>? = null, @SerialId(1) val msg: List<MsgComm.Msg>? = null,
@SerialId(2) val serializeRspbody: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val serializeRspbody: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbInputNotifyInfo( internal class PbInputNotifyInfo(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val ime: Int = 0, @SerialId(2) val ime: Int = 0,
@SerialId(3) val notifyFlag: Int = 0, @SerialId(3) val notifyFlag: Int = 0,
@ -331,7 +331,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbUnReadMsgSeqResp( internal class PbUnReadMsgSeqResp(
@SerialId(1) val c2cUnreadInfo: PbC2CUnReadMsgNumResp? = null, @SerialId(1) val c2cUnreadInfo: PbC2CUnReadMsgNumResp? = null,
@SerialId(2) val binduinUnreadInfo: List<PbBindUinUnReadMsgNumResp>? = null, @SerialId(2) val binduinUnreadInfo: List<PbBindUinUnReadMsgNumResp>? = null,
@SerialId(3) val groupUnreadInfo: PbPullGroupMsgSeqResp? = null, @SerialId(3) val groupUnreadInfo: PbPullGroupMsgSeqResp? = null,
@ -340,11 +340,11 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbDeleteMsgReq( internal class PbDeleteMsgReq(
@SerialId(1) val msgItems: List<MsgItem>? = null @SerialId(1) val msgItems: List<MsgItem>? = null
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class MsgItem( internal class MsgItem(
@SerialId(1) val fromUin: Long = 0L, @SerialId(1) val fromUin: Long = 0L,
@SerialId(2) val toUin: Long = 0L, @SerialId(2) val toUin: Long = 0L,
@SerialId(3) val msgType: Int = 0, @SerialId(3) val msgType: Int = 0,
@ -355,7 +355,7 @@ class MsgSvc : ProtoBuf {
} }
@Serializable @Serializable
class MultiMsgAssist( internal class MultiMsgAssist(
@SerialId(1) val repeatedRouting: List<RoutingHead>? = null, @SerialId(1) val repeatedRouting: List<RoutingHead>? = null,
@SerialId(2) val msgUse: Int /* enum */ = 1, @SerialId(2) val msgUse: Int /* enum */ = 1,
@SerialId(3) val tempId: Long = 0L, @SerialId(3) val tempId: Long = 0L,
@ -367,7 +367,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbMsgReadedReportReq( internal class PbMsgReadedReportReq(
@SerialId(1) val grpReadReport: List<PbGroupReadedReportReq>? = null, @SerialId(1) val grpReadReport: List<PbGroupReadedReportReq>? = null,
@SerialId(2) val disReadReport: List<PbDiscussReadedReportReq>? = null, @SerialId(2) val disReadReport: List<PbDiscussReadedReportReq>? = null,
@SerialId(3) val c2cReadReport: PbC2CReadedReportReq? = null, @SerialId(3) val c2cReadReport: PbC2CReadedReportReq? = null,
@ -375,7 +375,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbGetOneDayRoamMsgResp( internal class PbGetOneDayRoamMsgResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val peerUin: Long = 0L, @SerialId(3) val peerUin: Long = 0L,
@ -386,7 +386,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbBindUinGetMsgReq( internal class PbBindUinGetMsgReq(
@SerialId(1) val bindUin: Long = 0L, @SerialId(1) val bindUin: Long = 0L,
@SerialId(2) val bindUinSig: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val bindUinSig: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val syncFlag: Int /* enum */ = 0, @SerialId(3) val syncFlag: Int /* enum */ = 0,
@ -394,20 +394,20 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class NearByDatingTmp( internal class NearByDatingTmp(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val reply: Boolean = false @SerialId(3) val reply: Boolean = false
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class BsnsTmp( internal class BsnsTmp(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class RoutingHead( internal class RoutingHead(
@SerialId(1) val c2c: C2C? = null, @SerialId(1) val c2c: C2C? = null,
@SerialId(2) val grp: Grp? = null, @SerialId(2) val grp: Grp? = null,
@SerialId(3) val grpTmp: GrpTmp? = null, @SerialId(3) val grpTmp: GrpTmp? = null,
@ -433,7 +433,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class TransResp( internal class TransResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val respTag: Int = 0, @SerialId(3) val respTag: Int = 0,
@ -441,7 +441,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
data class PbSendMsgResp( internal data class PbSendMsgResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val sendTime: Int = 0, @SerialId(3) val sendTime: Int = 0,
@ -454,7 +454,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf, Packet ) : ProtoBuf, Packet
@Serializable @Serializable
class PbBindUinUnReadMsgNumResp( internal class PbBindUinUnReadMsgNumResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val bindUin: Long = 0L, @SerialId(3) val bindUin: Long = 0L,
@ -462,7 +462,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbGetDiscussMsgReq( internal class PbGetDiscussMsgReq(
@SerialId(1) val discussUin: Long = 0L, @SerialId(1) val discussUin: Long = 0L,
@SerialId(2) val endSeq: Long = 0L, @SerialId(2) val endSeq: Long = 0L,
@SerialId(3) val beginSeq: Long = 0L, @SerialId(3) val beginSeq: Long = 0L,
@ -473,27 +473,27 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbC2CMsgWithDrawResp( internal class PbC2CMsgWithDrawResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val msgStatus: List<MsgStatus>? = null, @SerialId(3) val msgStatus: List<MsgStatus>? = null,
@SerialId(4) val subCmd: Int = 0 @SerialId(4) val subCmd: Int = 0
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class MsgStatus( internal class MsgStatus(
@SerialId(1) val msgInfo: PbC2CMsgWithDrawReq.MsgInfo? = null, @SerialId(1) val msgInfo: PbC2CMsgWithDrawReq.MsgInfo? = null,
@SerialId(2) val status: Int = 0 @SerialId(2) val status: Int = 0
) : ProtoBuf ) : ProtoBuf
} }
@Serializable @Serializable
class SecretFileHead( internal class SecretFileHead(
@SerialId(1) val secretFileMsg: SubMsgType0xc1.MsgBody? = null, @SerialId(1) val secretFileMsg: SubMsgType0xc1.MsgBody? = null,
@SerialId(2) val secretFileStatus: SubMsgType0x1a.MsgBody? = null @SerialId(2) val secretFileStatus: SubMsgType0x1a.MsgBody? = null
) )
@Serializable @Serializable
class PbGetRoamMsgReq( internal class PbGetRoamMsgReq(
@SerialId(1) val peerUin: Long = 0L, @SerialId(1) val peerUin: Long = 0L,
@SerialId(2) val lastMsgtime: Long = 0L, @SerialId(2) val lastMsgtime: Long = 0L,
@SerialId(3) val random: Long = 0L, @SerialId(3) val random: Long = 0L,
@ -507,13 +507,13 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class TransCmd( internal class TransCmd(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val msgType: Int = 0 @SerialId(2) val msgType: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbMsgReadedReportResp( internal class PbMsgReadedReportResp(
@SerialId(1) val grpReadReport: List<PbGroupReadedReportResp>? = null, @SerialId(1) val grpReadReport: List<PbGroupReadedReportResp>? = null,
@SerialId(2) val disReadReport: List<PbDiscussReadedReportResp>? = null, @SerialId(2) val disReadReport: List<PbDiscussReadedReportResp>? = null,
@SerialId(3) val c2cReadReport: PbC2CReadedReportResp? = null, @SerialId(3) val c2cReadReport: PbC2CReadedReportResp? = null,
@ -521,14 +521,14 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbThirdQQUnReadMsgNumResp( internal class PbThirdQQUnReadMsgNumResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val thirdqqRespInfo: List<ThirdQQRespInfo>? = null, @SerialId(3) val thirdqqRespInfo: List<ThirdQQRespInfo>? = null,
@SerialId(4) val interval: Int = 0 @SerialId(4) val interval: Int = 0
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class ThirdQQRespInfo( internal class ThirdQQRespInfo(
@SerialId(1) val thirdUin: Long = 0L, @SerialId(1) val thirdUin: Long = 0L,
@SerialId(2) val thirdUinCookie: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val thirdUinCookie: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val msgNum: Int = 0, @SerialId(3) val msgNum: Int = 0,
@ -540,31 +540,31 @@ class MsgSvc : ProtoBuf {
} }
@Serializable @Serializable
class RichStatusTmp( internal class RichStatusTmp(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class QQQueryBusinessTmp( internal class QQQueryBusinessTmp(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbDelRoamMsgReq( internal class PbDelRoamMsgReq(
@SerialId(1) val c2cMsg: C2CMsg? = null, @SerialId(1) val c2cMsg: C2CMsg? = null,
@SerialId(2) val grpMsg: GrpMsg? = null, @SerialId(2) val grpMsg: GrpMsg? = null,
@SerialId(3) val disMsg: DisMsg? = null @SerialId(3) val disMsg: DisMsg? = null
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class GrpMsg( internal class GrpMsg(
@SerialId(1) val groupCode: Long = 0L, @SerialId(1) val groupCode: Long = 0L,
@SerialId(2) val msgSeq: Long = 0L @SerialId(2) val msgSeq: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class C2CMsg( internal class C2CMsg(
@SerialId(1) val fromUin: Long = 0L, @SerialId(1) val fromUin: Long = 0L,
@SerialId(2) val peerUin: Long = 0L, @SerialId(2) val peerUin: Long = 0L,
@SerialId(3) val msgTime: Int = 0, @SerialId(3) val msgTime: Int = 0,
@ -573,14 +573,14 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class DisMsg( internal class DisMsg(
@SerialId(1) val discussUin: Long = 0L, @SerialId(1) val discussUin: Long = 0L,
@SerialId(2) val msgSeq: Long = 0L @SerialId(2) val msgSeq: Long = 0L
) : ProtoBuf ) : ProtoBuf
} }
@Serializable @Serializable
class PbUnReadMsgSeqReq( internal class PbUnReadMsgSeqReq(
@SerialId(1) val c2cUnreadInfo: PbC2CUnReadMsgNumReq? = null, @SerialId(1) val c2cUnreadInfo: PbC2CUnReadMsgNumReq? = null,
@SerialId(2) val binduinUnreadInfo: List<PbBindUinUnReadMsgNumReq>? = null, @SerialId(2) val binduinUnreadInfo: List<PbBindUinUnReadMsgNumReq>? = null,
@SerialId(3) val groupUnreadInfo: PbPullGroupMsgSeqReq? = null, @SerialId(3) val groupUnreadInfo: PbPullGroupMsgSeqReq? = null,
@ -589,13 +589,13 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbPullDiscussMsgSeqResp( internal class PbPullDiscussMsgSeqResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val discussInfoResp: List<DiscussInfoResp>? = null @SerialId(3) val discussInfoResp: List<DiscussInfoResp>? = null
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class DiscussInfoResp( internal class DiscussInfoResp(
@SerialId(1) val confUin: Long = 0L, @SerialId(1) val confUin: Long = 0L,
@SerialId(2) val memberSeq: Long = 0L, @SerialId(2) val memberSeq: Long = 0L,
@SerialId(3) val confSeq: Long = 0L @SerialId(3) val confSeq: Long = 0L
@ -603,30 +603,30 @@ class MsgSvc : ProtoBuf {
} }
@Serializable @Serializable
class PbPullDiscussMsgSeqReq( internal class PbPullDiscussMsgSeqReq(
@SerialId(1) val discussInfoReq: List<DiscussInfoReq>? = null @SerialId(1) val discussInfoReq: List<DiscussInfoReq>? = null
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class DiscussInfoReq( internal class DiscussInfoReq(
@SerialId(1) val confUin: Long = 0L, @SerialId(1) val confUin: Long = 0L,
@SerialId(2) val lastSeq: Long = 0L @SerialId(2) val lastSeq: Long = 0L
) : ProtoBuf ) : ProtoBuf
} }
@Serializable @Serializable
class WPATmp( internal class WPATmp(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PublicPlat( internal class PublicPlat(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val sig: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbBindUinMsgReadedConfirmResp( internal class PbBindUinMsgReadedConfirmResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY,
@ -634,7 +634,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbGetRoamMsgResp( internal class PbGetRoamMsgResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val peerUin: Long = 0L, @SerialId(3) val peerUin: Long = 0L,
@ -645,18 +645,18 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbDiscussReadedReportReq( internal class PbDiscussReadedReportReq(
@SerialId(1) val confUin: Long = 0L, @SerialId(1) val confUin: Long = 0L,
@SerialId(2) val lastReadSeq: Long = 0L @SerialId(2) val lastReadSeq: Long = 0L
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbC2CReadedReportReq( internal class PbC2CReadedReportReq(
@SerialId(1) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val pairInfo: List<UinPairReadInfo>? = null @SerialId(2) val pairInfo: List<UinPairReadInfo>? = null
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class UinPairReadInfo( internal class UinPairReadInfo(
@SerialId(1) val peerUin: Long = 0L, @SerialId(1) val peerUin: Long = 0L,
@SerialId(2) val lastReadTime: Int = 0, @SerialId(2) val lastReadTime: Int = 0,
@SerialId(3) val crmSig: ByteArray = EMPTY_BYTE_ARRAY @SerialId(3) val crmSig: ByteArray = EMPTY_BYTE_ARRAY
@ -664,7 +664,7 @@ class MsgSvc : ProtoBuf {
} }
@Serializable @Serializable
class Trans0x211( internal class Trans0x211(
@SerialId(1) val toUin: Long = 0L, @SerialId(1) val toUin: Long = 0L,
@SerialId(2) val ccCmd: Int = 0, @SerialId(2) val ccCmd: Int = 0,
@SerialId(3) val instCtrl: ImMsgHead.InstCtrl? = null, @SerialId(3) val instCtrl: ImMsgHead.InstCtrl? = null,
@ -674,43 +674,43 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbSearchRoamMsgInCloudReq( internal class PbSearchRoamMsgInCloudReq(
@SerialId(1) val serializeReqbody: ByteArray = EMPTY_BYTE_ARRAY @SerialId(1) val serializeReqbody: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbBindUinUnReadMsgNumReq( internal class PbBindUinUnReadMsgNumReq(
@SerialId(1) val bindUin: Long = 0L, @SerialId(1) val bindUin: Long = 0L,
@SerialId(2) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY @SerialId(2) val syncCookie: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbC2CUnReadMsgNumResp( internal class PbC2CUnReadMsgNumResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val msgNum: Int = 0 @SerialId(3) val msgNum: Int = 0
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbPullGroupMsgSeqReq( internal class PbPullGroupMsgSeqReq(
@SerialId(1) val groupInfoReq: List<GroupInfoReq>? = null @SerialId(1) val groupInfoReq: List<GroupInfoReq>? = null
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class GroupInfoReq( internal class GroupInfoReq(
@SerialId(1) val groupCode: Long = 0L, @SerialId(1) val groupCode: Long = 0L,
@SerialId(2) val lastSeq: Long = 0L @SerialId(2) val lastSeq: Long = 0L
) : ProtoBuf ) : ProtoBuf
} }
@Serializable @Serializable
class TransReq( internal class TransReq(
@SerialId(1) val command: Int = 0, @SerialId(1) val command: Int = 0,
@SerialId(2) val reqTag: Int = 0, @SerialId(2) val reqTag: Int = 0,
@SerialId(3) val reqBuff: ByteArray = EMPTY_BYTE_ARRAY @SerialId(3) val reqBuff: ByteArray = EMPTY_BYTE_ARRAY
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbGroupReadedReportResp( internal class PbGroupReadedReportResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val groupCode: Long = 0L, @SerialId(3) val groupCode: Long = 0L,
@ -719,7 +719,7 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbGetGroupMsgResp( internal class PbGetGroupMsgResp(
@SerialId(1) val result: Int = 0, @SerialId(1) val result: Int = 0,
@SerialId(2) val errmsg: String = "", @SerialId(2) val errmsg: String = "",
@SerialId(3) val groupCode: Long = 0L, @SerialId(3) val groupCode: Long = 0L,
@ -729,12 +729,12 @@ class MsgSvc : ProtoBuf {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class PbThirdQQUnReadMsgNumReq( internal class PbThirdQQUnReadMsgNumReq(
@SerialId(1) val thirdqqReqInfo: List<ThirdQQReqInfo>? = null, @SerialId(1) val thirdqqReqInfo: List<ThirdQQReqInfo>? = null,
@SerialId(2) val source: Int = 0 @SerialId(2) val source: Int = 0
) : ProtoBuf { ) : ProtoBuf {
@Serializable @Serializable
class ThirdQQReqInfo( internal class ThirdQQReqInfo(
@SerialId(1) val thirdUin: Long = 0L, @SerialId(1) val thirdUin: Long = 0L,
@SerialId(2) val thirdUinSig: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val thirdUinSig: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val thirdUinCookie: ByteArray = EMPTY_BYTE_ARRAY @SerialId(3) val thirdUinCookie: ByteArray = EMPTY_BYTE_ARRAY
@ -743,15 +743,15 @@ class MsgSvc : ProtoBuf {
} }
@Serializable @Serializable
class MsgCtrl { internal class MsgCtrl {
@Serializable @Serializable
class MsgCtrl( internal class MsgCtrl(
@SerialId(1) val msgFlag: Int = 0, @SerialId(1) val msgFlag: Int = 0,
@SerialId(2) val resvResvInfo: ResvResvInfo? = null @SerialId(2) val resvResvInfo: ResvResvInfo? = null
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class ResvResvInfo( internal class ResvResvInfo(
@SerialId(1) val flag: Int = 0, @SerialId(1) val flag: Int = 0,
@SerialId(2) val reserv1: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(2) val reserv1: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(3) val reserv2: Long = 0L, @SerialId(3) val reserv2: Long = 0L,
@ -764,9 +764,9 @@ class MsgCtrl {
} }
@Serializable @Serializable
class SubMsgType0xc1 { internal class SubMsgType0xc1 {
@Serializable @Serializable
class NotOnlineImage( internal class NotOnlineImage(
@SerialId(1) val filePath: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val filePath: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val fileLen: Int = 0, @SerialId(2) val fileLen: Int = 0,
@SerialId(3) val downloadPath: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val downloadPath: ByteArray = EMPTY_BYTE_ARRAY,
@ -783,7 +783,7 @@ class SubMsgType0xc1 {
) : ProtoBuf ) : ProtoBuf
@Serializable @Serializable
class MsgBody( internal class MsgBody(
@SerialId(1) val fileKey: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val fileKey: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val fromUin: Long = 0L, @SerialId(2) val fromUin: Long = 0L,
@SerialId(3) val toUin: Long = 0L, @SerialId(3) val toUin: Long = 0L,
@ -800,9 +800,9 @@ class SubMsgType0xc1 {
} }
@Serializable @Serializable
class SubMsgType0x1a { internal class SubMsgType0x1a {
@Serializable @Serializable
class MsgBody( internal class MsgBody(
@SerialId(1) val fileKey: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(1) val fileKey: ByteArray = EMPTY_BYTE_ARRAY,
@SerialId(2) val fromUin_int32: Int = 0, @SerialId(2) val fromUin_int32: Int = 0,
@SerialId(3) val toUin_int32: Int = 0, @SerialId(3) val toUin_int32: Int = 0,

View File

@ -6,9 +6,9 @@ import net.mamoe.mirai.qqandroid.io.ProtoBuf
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
@Serializable @Serializable
class MsgOnlinePush { internal class MsgOnlinePush {
@Serializable @Serializable
class PbPushMsg( internal class PbPushMsg(
@SerialId(1) val msg: MsgComm.Msg, @SerialId(1) val msg: MsgComm.Msg,
@SerialId(2) val svrip: Int = 0, @SerialId(2) val svrip: Int = 0,
@SerialId(3) val pushToken: ByteArray = EMPTY_BYTE_ARRAY, @SerialId(3) val pushToken: ByteArray = EMPTY_BYTE_ARRAY,

View File

@ -48,6 +48,7 @@ internal val EMPTY_BYTE_ARRAY = ByteArray(0)
* *
* byte[] body encrypted by 16 zero * byte[] body encrypted by 16 zero
*/ */
@Deprecated("危险", level = DeprecationLevel.ERROR)
@UseExperimental(MiraiInternalAPI::class) @UseExperimental(MiraiInternalAPI::class)
internal inline fun PacketFactory<*>.buildOutgoingPacket( internal inline fun PacketFactory<*>.buildOutgoingPacket(
client: QQAndroidClient, client: QQAndroidClient,
@ -102,7 +103,7 @@ internal inline fun PacketFactory<*>.buildOutgoingUniPacket(
writeStringUtf8(it) writeStringUtf8(it)
} }
encryptAndWrite(key) { encryptAndWrite(key) {
writeUniPacket(commandName, extraData) { writeUniPacket(commandName, client.outgoingPacketUnknownValue, extraData) {
body(sequenceId) body(sequenceId)
} }
} }
@ -113,6 +114,7 @@ internal inline fun PacketFactory<*>.buildOutgoingUniPacket(
@UseExperimental(MiraiInternalAPI::class) @UseExperimental(MiraiInternalAPI::class)
internal inline fun BytePacketBuilder.writeUniPacket( internal inline fun BytePacketBuilder.writeUniPacket(
commandName: String, commandName: String,
unknownData: ByteArray,
extraData: ByteReadPacket = BRP_STUB, extraData: ByteReadPacket = BRP_STUB,
body: BytePacketBuilder.() -> Unit body: BytePacketBuilder.() -> Unit
) { ) {
@ -123,7 +125,7 @@ internal inline fun BytePacketBuilder.writeUniPacket(
} }
writeInt(4 + 4) writeInt(4 + 4)
writeInt(45112203) // 02 B0 5B 8B writeFully(unknownData) // 02 B0 5B 8B
if (extraData === BRP_STUB) { if (extraData === BRP_STUB) {
writeInt(0x04) writeInt(0x04)
@ -243,7 +245,7 @@ internal inline fun BytePacketBuilder.writeSsoPacket(
} }
writeInt(4 + 4) writeInt(4 + 4)
writeInt(45112203) // 02 B0 5B 8B writeFully(client.outgoingPacketUnknownValue) // 02 B0 5B 8B
client.device.imei.let { client.device.imei.let {
writeInt(it.length + 4) writeInt(it.length + 4)

View File

@ -25,8 +25,10 @@ import net.mamoe.mirai.qqandroid.utils.toRichTextElems
import net.mamoe.mirai.utils.cryptor.contentToString import net.mamoe.mirai.utils.cryptor.contentToString
import net.mamoe.mirai.utils.io.hexToBytes import net.mamoe.mirai.utils.io.hexToBytes
import net.mamoe.mirai.utils.io.toReadPacket import net.mamoe.mirai.utils.io.toReadPacket
import kotlin.math.absoluteValue
import kotlin.random.Random
class MessageSvc { internal class MessageSvc {
/** /**
* 告知要刷新好友消息 * 告知要刷新好友消息
*/ */
@ -119,8 +121,16 @@ class MessageSvc {
} }
} }
internal object PbSendMsg : PacketFactory<MsgSvc.PbSendMsgResp>("MessageSvc.PbSendMsg") { internal object PbSendMsg : PacketFactory<PbSendMsg.Response>("MessageSvc.PbSendMsg") {
object Response : Packet sealed class Response : Packet {
object SUCCESS : Response() {
override fun toString(): String = "MessageSvc.PbSendMsg.Response.SUCCESS"
}
data class Failed(val errorCode: Int, val errorMessage: String) : Response() {
override fun toString(): String = "MessageSvc.PbSendMsg.Response.FAILED(errorCode=$errorCode, errorMessage=$errorMessage"
}
}
/** /**
* 发送好友消息 * 发送好友消息
@ -142,18 +152,53 @@ class MessageSvc {
richText = ImMsgBody.RichText( richText = ImMsgBody.RichText(
elems = message.toRichTextElems() elems = message.toRichTextElems()
) )
) ),
// msgSeq = 17041, msgSeq = client.atomicNextMessageSequenceId(),
// msgRand = Random.nextInt().absoluteValue, msgRand = Random.nextInt().absoluteValue
// syncCookie = client.c2cMessageSync.syncCookie.takeIf { it.isNotEmpty() } ?: "08 92 C2 C4 F1 05 10 92 C2 C4 F1 05 18 E6 ED B9 C3 02 20 89 FE BE A4 06 28 89 84 F9 A2 06 48 DE 8C EA E5 0E 58 D9 BD BB A0 09 60 1D 68 92 C2 C4 F1 05 70 00".hexToBytes(), // syncCookie = client.c2cMessageSync.syncCookie.takeIf { it.isNotEmpty() } ?: "08 92 C2 C4 F1 05 10 92 C2 C4 F1 05 18 E6 ED B9 C3 02 20 89 FE BE A4 06 28 89 84 F9 A2 06 48 DE 8C EA E5 0E 58 D9 BD BB A0 09 60 1D 68 92 C2 C4 F1 05 70 00".hexToBytes(),
// msgVia = 1 // msgVia = 1
) )
) )
} }
override suspend fun ByteReadPacket.decode(bot: QQAndroidBot): MsgSvc.PbSendMsgResp { /**
* 发送群消息
*/
fun ToGroup(
client: QQAndroidClient,
groupId: Long,
message: MessageChain
): OutgoingPacket = buildOutgoingUniPacket(client) {
///writeFully("0A 08 0A 06 08 89 FC A6 8C 0B 12 06 08 01 10 00 18 00 1A 1F 0A 1D 12 08 0A 06 0A 04 F0 9F 92 A9 12 11 AA 02 0E 88 01 00 9A 01 08 78 00 F8 01 00 C8 02 00 20 9B 7A 28 F4 CA 9B B8 03 32 34 08 92 C2 C4 F1 05 10 92 C2 C4 F1 05 18 E6 ED B9 C3 02 20 89 FE BE A4 06 28 89 84 F9 A2 06 48 DE 8C EA E5 0E 58 D9 BD BB A0 09 60 1D 68 92 C2 C4 F1 05 70 00 40 01".hexToBytes())
///return@buildOutgoingUniPacket
writeProtoBuf(
MsgSvc.PbSendMsgReq.serializer(), MsgSvc.PbSendMsgReq(
routingHead = MsgSvc.RoutingHead(grp = MsgSvc.Grp(groupCode = groupId)), // TODO: 2020/1/30 确认这里是 id 还是 internalId
contentHead = MsgComm.ContentHead(pkgNum = 1),
msgBody = ImMsgBody.MsgBody(
richText = ImMsgBody.RichText(
elems = message.toRichTextElems()
)
),
msgSeq = client.atomicNextMessageSequenceId(),
msgRand = Random.nextInt().absoluteValue
// syncCookie = client.c2cMessageSync.syncCookie.takeIf { it.isNotEmpty() } ?: "08 92 C2 C4 F1 05 10 92 C2 C4 F1 05 18 E6 ED B9 C3 02 20 89 FE BE A4 06 28 89 84 F9 A2 06 48 DE 8C EA E5 0E 58 D9 BD BB A0 09 60 1D 68 92 C2 C4 F1 05 70 00".hexToBytes(),
// msgVia = 1
)
)
}
override suspend fun ByteReadPacket.decode(bot: QQAndroidBot): Response {
discardExact(4) discardExact(4)
return readRemainingAsProtoBuf(MsgSvc.PbSendMsgResp.serializer())
val response = readRemainingAsProtoBuf(MsgSvc.PbSendMsgResp.serializer())
return if (response.result == 0) {
Response.SUCCESS
} else {
Response.Failed(response.errtype, response.errmsg)
}
} }
} }
} }