diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/data/jce/OnlinePushPack.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/data/jce/OnlinePushPack.kt index c3e2c801f..a38ca7189 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/data/jce/OnlinePushPack.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/data/jce/OnlinePushPack.kt @@ -84,4 +84,166 @@ class OnlinePushPack { @SerialId(3) val uMsgCompleted: Long? = null, @SerialId(4) val vMsgInfos: List? = null ) : JceStruct + + @Serializable + internal class MsgType0x210( + @SerialId(0) val uSubMsgType: Long, + @SerialId(1) val stMsgInfo0x2: MsgType0x210SubMsgType0x2? = null, + @SerialId(3) val stMsgInfo0xa: MsgType0x210SubMsgType0xa? = null, + @SerialId(4) val stMsgInfo0xe: MsgType0x210SubMsgType0xe? = null, + @SerialId(5) val stMsgInfo0x13: MsgType0x210SubMsgType0x13? = null, + @SerialId(6) val stMsgInfo0x17: MsgType0x210SubMsgType0x17? = null, + @SerialId(7) val stMsgInfo0x20: MsgType0x210SubMsgType0x20? = null, + @SerialId(8) val stMsgInfo0x1d: MsgType0x210SubMsgType0x1d? = null, + @SerialId(9) val stMsgInfo0x24: MsgType0x210SubMsgType0x24? = null, + @SerialId(10) val vProtobuf: ByteArray? = null + ) : JceStruct + + @Serializable + internal class MsgType0x210SubMsgType0x13( + @SerialId(0) val uint32SrcAppId: Long? = null, + @SerialId(1) val uint32SrcInstId: Long? = null, + @SerialId(2) val uint32DstAppId: Long? = null, + @SerialId(3) val uint32DstInstId: Long? = null, + @SerialId(4) val uint64DstUin: Long? = null, + @SerialId(5) val uint64Sessionid: Long? = null, + @SerialId(6) val uint32Size: Long? = null, + @SerialId(7) val uint32Index: Long? = null, + @SerialId(8) val uint32Type: Long? = null, + @SerialId(9) val buf: ByteArray? = null + ) : JceStruct + + @Serializable + internal class MsgType0x210SubMsgType0x17( + @SerialId(0) val dwOpType: Long? = null, + @SerialId(1) val stAddGroup: AddGroup? = null, + @SerialId(2) val stDelGroup: DelGroup? = null, + @SerialId(3) val stModGroupName: ModGroupName? = null, + @SerialId(4) val stModGroupSort: ModGroupSort? = null, + @SerialId(5) val stModFriendGroup: ModFriendGroup? = null + ) : JceStruct + + @Serializable + internal class AddGroup( + @SerialId(0) val dwGroupID: Long? = null, + @SerialId(1) val dwSortID: Long? = null, + @SerialId(2) val groupName: String? = "" + ) : JceStruct + + @Serializable + internal class DelGroup( + @SerialId(0) val dwGroupID: Long? = null + ) : JceStruct + + @Serializable + internal class ModFriendGroup( + @SerialId(0) val vMsgFrdGroup: List? = null + ) : JceStruct + + @Serializable + internal class FriendGroup( + @SerialId(0) val dwFuin: Long? = null, + @SerialId(1) val vOldGroupID: List? = null, + @SerialId(2) val vNewGroupID: List? = null + ) : JceStruct + + @Serializable + internal class ModGroupName( + @SerialId(0) val dwGroupID: Long? = null, + @SerialId(1) val groupName: String? = "" + ) : JceStruct + + @Serializable + internal class ModGroupSort( + @SerialId(0) val vMsgGroupSort: List? = null + ) : JceStruct + + @Serializable + internal class GroupSort( + @SerialId(0) val dwGroupID: Long? = null, + @SerialId(1) val dwSortID: Long? = null + ) : JceStruct + + @Serializable + internal class MsgType0x210SubMsgType0x1d( + @SerialId(0) val dwOpType: Long? = null, + @SerialId(1) val dwUin: Long? = null, + @SerialId(2) val dwID: Long? = null, + @SerialId(3) val value: String? = "" + ) : JceStruct + + @Serializable + internal class MsgType0x210SubMsgType0x2( + @SerialId(0) val uSrcAppId: Long? = null, + @SerialId(1) val uSrcInstId: Long? = null, + @SerialId(2) val uDstAppId: Long? = null, + @SerialId(3) val uDstInstId: Long? = null, + @SerialId(4) val uDstUin: Long? = null, + @SerialId(5) val fileName: ByteArray? = null, + @SerialId(6) val fileIndex: ByteArray? = null, + @SerialId(7) val fileMd5: ByteArray? = null, + @SerialId(8) val fileKey: ByteArray? = null, + @SerialId(9) val uServerIp: Long? = null, + @SerialId(10) val uServerPort: Long? = null, + @SerialId(11) val fileLen: Long? = null, + @SerialId(12) val sessionId: Long? = null, + @SerialId(13) val originfileMd5: ByteArray? = null, + @SerialId(14) val uOriginfiletype: Long? = null, + @SerialId(15) val uSeq: Long? = null + ) : JceStruct + + @Serializable + internal class MsgType0x210SubMsgType0x20( + @SerialId(0) val dwOpType: Long? = null, + @SerialId(1) val dwType: Long? = null, + @SerialId(2) val dwUin: Long? = null, + @SerialId(3) val remaek: String? = "" + ) : JceStruct + + @Serializable + internal class MsgType0x210SubMsgType0x24( + @SerialId(0) val vPluginNumList: List? = null + ) : JceStruct + + @Serializable + internal class PluginNum( + @SerialId(0) val dwID: Long? = null, + @SerialId(1) val dwNUm: Long? = null, + @SerialId(2) val flag: Byte? = null + ) : JceStruct + + @Serializable + internal class MsgType0x210SubMsgType0xa( + @SerialId(0) val uSrcAppId: Long? = null, + @SerialId(1) val uSrcInstId: Long? = null, + @SerialId(2) val uDstAppId: Long? = null, + @SerialId(3) val uDstInstId: Long? = null, + @SerialId(4) val uDstUin: Long? = null, + @SerialId(5) val uType: Long? = null, + @SerialId(6) val uServerIp: Long? = null, + @SerialId(7) val uServerPort: Long? = null, + @SerialId(8) val vUrlNotify: ByteArray? = null, + @SerialId(9) val vTokenKey: ByteArray? = null, + @SerialId(10) val uFileLen: Long? = null, + @SerialId(11) val fileName: ByteArray? = null, + @SerialId(12) val vMd5: ByteArray? = null, + @SerialId(13) val sessionId: Long? = null, + @SerialId(14) val originfileMd5: ByteArray? = null, + @SerialId(15) val uOriginfiletype: Long? = null, + @SerialId(16) val uSeq: Long? = null + ) : JceStruct + + @Serializable + internal class MsgType0x210SubMsgType0xe( + @SerialId(0) val uint32SrcAppId: Long? = null, + @SerialId(1) val uint32SrcInstId: Long? = null, + @SerialId(2) val uint32DstAppId: Long? = null, + @SerialId(3) val uint32DstInstId: Long? = null, + @SerialId(4) val uint64DstUin: Long? = null, + @SerialId(5) val uint64Sessionid: Long? = null, + @SerialId(6) val uint32Operate: Long? = null, + @SerialId(7) val uint32Seq: Long? = null, + @SerialId(8) val uint32Code: Long? = null, + @SerialId(9) val msg: String? = "" + ) : JceStruct } \ No newline at end of file diff --git a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/OnlinePush.kt b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/OnlinePush.kt index 99875ab37..a8971ef0e 100644 --- a/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/OnlinePush.kt +++ b/mirai-core-qqandroid/src/commonMain/kotlin/net/mamoe/mirai/qqandroid/network/protocol/packet/chat/receive/OnlinePush.kt @@ -116,7 +116,6 @@ internal class OnlinePush { debug += " " + time + "s" } } - 3585 -> { val operatorUin = this.readUInt().toLong() debug += " 管理员 $operatorUin" @@ -127,7 +126,6 @@ internal class OnlinePush { debug += " 关闭 " } } - 4096 -> { val dataBytes = this.readBytes(26) val message = this.readString(this.readByte().toInt()) @@ -153,6 +151,10 @@ internal class OnlinePush { println("unknown group internal type $internalType , data: " + this.readBytes().toUHexString() + " ") } } + } else if (msgInfo.shMsgType.toInt() == 528) { + + } else if (msgInfo.shMsgType.toInt() == 4352) { + } else { println("unknown shtype ${msgInfo.shMsgType.toInt()}") }