diff --git a/src/onebot11/main.ts b/src/onebot11/main.ts index 1ec8b7fe..819ebe0b 100644 --- a/src/onebot11/main.ts +++ b/src/onebot11/main.ts @@ -74,7 +74,12 @@ export class NapCatOnebot11 { } // MsgListener const msgListener = new MsgListener(); - msgListener.onRecvSysMsg = (protobufData: number[]) => { + msgListener.onRecvSysMsg = async (protobufData: number[]) => { + // function buf2hex(buffer: Buffer) { + // return [...new Uint8Array(buffer)] + // .map(x => x.toString(16).padStart(2, '0')) + // .join(''); + // } // let Data: Data = { // header: { // GroupNumber: 0, @@ -94,8 +99,9 @@ export class NapCatOnebot11 { // }; try { const sysMsg = SysData.fromBinary(Buffer.from(protobufData)); - const peeruin = sysMsg.header[0].groupNumber; - const peeruid = sysMsg.header[0].groupString; + //console.log(buf2hex(Buffer.from(protobufData))); + const peeruin = sysMsg.header[0].peerNumber; + const peeruid = sysMsg.header[0].peerString; const MsgType = sysMsg.body[0].msgType; const subType0 = sysMsg.body[0].subType0; const subType1 = sysMsg.body[0].subType1; @@ -123,6 +129,16 @@ export class NapCatOnebot11 { postOB11Event(pokeEvent); } } + if (MsgType == 34 && subType0 == 0) { + const role = (await getGroupMember(peeruin, selfInfo.uin))?.role; + const isPrivilege = role === 3 || role === 4; + if (!isPrivilege) { + const leaveUin = uid2UinMap[sysMsg.other[0].event[0].peerString]; + log('[群聊] 群组 ', peeruin, ' 成员' + leaveUin + '退出'); + const groupDecreaseEvent = new OB11GroupDecreaseEvent(peeruin, parseInt(leaveUin), 0, 'leave');// 不知道怎么出去的 + postOB11Event(groupDecreaseEvent, true); + } + } } catch (e) { log('解析SysMsg异常', e); // console.log(e); @@ -185,14 +201,14 @@ export class NapCatOnebot11 { }; groupListener.onMemberInfoChange = async (groupCode: string, changeType: number, members: Map) => { // 如果自身是非管理员也许要从这里获取Delete 成员变动 待测试与验证 - const role = (await getGroupMember(groupCode, selfInfo.uin))?.role; - const isPrivilege = role === 3 || role === 4; - for (const member of members.values()) { - if (member?.isDelete && !isPrivilege) { - const groupDecreaseEvent = new OB11GroupDecreaseEvent(parseInt(groupCode), parseInt(member.uin), 0, 'leave');// 不知道怎么出去的 - postOB11Event(groupDecreaseEvent, true); - } - } + // const role = (await getGroupMember(groupCode, selfInfo.uin))?.role; + // const isPrivilege = role === 3 || role === 4; + // for (const member of members.values()) { + // if (member?.isDelete && !isPrivilege) { + // const groupDecreaseEvent = new OB11GroupDecreaseEvent(parseInt(groupCode), parseInt(member.uin), 0, 'leave');// 不知道怎么出去的 + // postOB11Event(groupDecreaseEvent, true); + // } + // } }; groupListener.onJoinGroupNotify = (...notify) => { // console.log('ob11 onJoinGroupNotify', notify); diff --git a/src/proto/SysMessage.proto b/src/proto/SysMessage.proto index f092f3e6..7ee96f74 100644 --- a/src/proto/SysMessage.proto +++ b/src/proto/SysMessage.proto @@ -1,8 +1,9 @@ syntax = "proto3"; package SysMessage; -message Data{ +message Data { repeated Header header = 1; repeated Body body = 2; + repeated Other other = 3; } message Header { uint32 PeerNumber = 1; @@ -19,3 +20,10 @@ message Body { uint64 MsgID = 12; uint32 Other = 13; } +message Event { + uint32 PeerNumber = 1; + string PeerString = 3; +} +message Other{ + repeated Event event = 2; +} \ No newline at end of file diff --git a/src/proto/SysMessage.ts b/src/proto/SysMessage.ts index 34933a00..e5cbfe32 100644 --- a/src/proto/SysMessage.ts +++ b/src/proto/SysMessage.ts @@ -1,15 +1,15 @@ // @generated by protobuf-ts 2.9.4 // @generated from protobuf file "SysMessage.proto" (package "SysMessage", syntax proto3) // tslint:disable -import type { BinaryWriteOptions } from '@protobuf-ts/runtime'; -import type { IBinaryWriter } from '@protobuf-ts/runtime'; -import { WireType } from '@protobuf-ts/runtime'; -import type { BinaryReadOptions } from '@protobuf-ts/runtime'; -import type { IBinaryReader } from '@protobuf-ts/runtime'; -import { UnknownFieldHandler } from '@protobuf-ts/runtime'; -import type { PartialMessage } from '@protobuf-ts/runtime'; -import { reflectionMergePartial } from '@protobuf-ts/runtime'; -import { MessageType } from '@protobuf-ts/runtime'; +import type { BinaryWriteOptions } from "@protobuf-ts/runtime"; +import type { IBinaryWriter } from "@protobuf-ts/runtime"; +import { WireType } from "@protobuf-ts/runtime"; +import type { BinaryReadOptions } from "@protobuf-ts/runtime"; +import type { IBinaryReader } from "@protobuf-ts/runtime"; +import { UnknownFieldHandler } from "@protobuf-ts/runtime"; +import type { PartialMessage } from "@protobuf-ts/runtime"; +import { reflectionMergePartial } from "@protobuf-ts/runtime"; +import { MessageType } from "@protobuf-ts/runtime"; /** * @generated from protobuf message SysMessage.Data */ @@ -22,23 +22,27 @@ export interface Data { * @generated from protobuf field: repeated SysMessage.Body body = 2; */ body: Body[]; + /** + * @generated from protobuf field: repeated SysMessage.Other other = 3; + */ + other: Other[]; } /** * @generated from protobuf message SysMessage.Header */ export interface Header { /** - * @generated from protobuf field: uint32 GroupNumber = 1 [json_name = "GroupNumber"]; + * @generated from protobuf field: uint32 PeerNumber = 1 [json_name = "PeerNumber"]; */ - groupNumber: number; + peerNumber: number; /** - * @generated from protobuf field: string GroupString = 2 [json_name = "GroupString"]; + * @generated from protobuf field: string PeerString = 2 [json_name = "PeerString"]; */ - groupString: string; + peerString: string; /** - * @generated from protobuf field: uint32 QQ = 5 [json_name = "QQ"]; + * @generated from protobuf field: uint32 Uin = 5 [json_name = "Uin"]; */ - qQ: number; + uin: number; /** * @generated from protobuf field: optional string Uid = 6 [json_name = "Uid"]; */ @@ -77,56 +81,86 @@ export interface Body { */ other: number; } +/** + * @generated from protobuf message SysMessage.Event + */ +export interface Event { + /** + * @generated from protobuf field: uint32 PeerNumber = 1 [json_name = "PeerNumber"]; + */ + peerNumber: number; + /** + * @generated from protobuf field: string PeerString = 3 [json_name = "PeerString"]; + */ + peerString: string; +} +/** + * @generated from protobuf message SysMessage.Other + */ +export interface Other { + /** + * @generated from protobuf field: repeated SysMessage.Event event = 2; + */ + event: Event[]; +} // @generated message type with reflection information, may provide speed optimized methods class Data$Type extends MessageType { - constructor() { - super('SysMessage.Data', [ - { no: 1, name: 'header', kind: 'message', repeat: 1 /*RepeatType.PACKED*/, T: () => Header }, - { no: 2, name: 'body', kind: 'message', repeat: 1 /*RepeatType.PACKED*/, T: () => Body } - ]); - } - create(value?: PartialMessage): Data { - const message = globalThis.Object.create((this.messagePrototype!)); - message.header = []; - message.body = []; - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Data): Data { - const message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - const [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* repeated SysMessage.Header header */ 1: - message.header.push(Header.internalBinaryRead(reader, reader.uint32(), options)); - break; - case /* repeated SysMessage.Body body */ 2: - message.body.push(Body.internalBinaryRead(reader, reader.uint32(), options)); - break; - default: - const u = options.readUnknownField; - if (u === 'throw') - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - const d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } + constructor() { + super("SysMessage.Data", [ + { no: 1, name: "header", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Header }, + { no: 2, name: "body", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Body }, + { no: 3, name: "other", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Other } + ]); + } + create(value?: PartialMessage): Data { + const message = globalThis.Object.create((this.messagePrototype!)); + message.header = []; + message.body = []; + message.other = []; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Data): Data { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* repeated SysMessage.Header header */ 1: + message.header.push(Header.internalBinaryRead(reader, reader.uint32(), options)); + break; + case /* repeated SysMessage.Body body */ 2: + message.body.push(Body.internalBinaryRead(reader, reader.uint32(), options)); + break; + case /* repeated SysMessage.Other other */ 3: + message.other.push(Other.internalBinaryRead(reader, reader.uint32(), options)); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: Data, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* repeated SysMessage.Header header = 1; */ + for (let i = 0; i < message.header.length; i++) + Header.internalBinaryWrite(message.header[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); + /* repeated SysMessage.Body body = 2; */ + for (let i = 0; i < message.body.length; i++) + Body.internalBinaryWrite(message.body[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); + /* repeated SysMessage.Other other = 3; */ + for (let i = 0; i < message.other.length; i++) + Other.internalBinaryWrite(message.other[i], writer.tag(3, WireType.LengthDelimited).fork(), options).join(); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; } - return message; - } - internalBinaryWrite(message: Data, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { - /* repeated SysMessage.Header header = 1; */ - for (let i = 0; i < message.header.length; i++) - Header.internalBinaryWrite(message.header[i], writer.tag(1, WireType.LengthDelimited).fork(), options).join(); - /* repeated SysMessage.Body body = 2; */ - for (let i = 0; i < message.body.length; i++) - Body.internalBinaryWrite(message.body[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); - const u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } } /** * @generated MessageType for protobuf message SysMessage.Data @@ -134,69 +168,69 @@ class Data$Type extends MessageType { export const Data = new Data$Type(); // @generated message type with reflection information, may provide speed optimized methods class Header$Type extends MessageType
{ - constructor() { - super('SysMessage.Header', [ - { no: 1, name: 'GroupNumber', kind: 'scalar', jsonName: 'GroupNumber', T: 13 /*ScalarType.UINT32*/ }, - { no: 2, name: 'GroupString', kind: 'scalar', jsonName: 'GroupString', T: 9 /*ScalarType.STRING*/ }, - { no: 5, name: 'QQ', kind: 'scalar', jsonName: 'QQ', T: 13 /*ScalarType.UINT32*/ }, - { no: 6, name: 'Uid', kind: 'scalar', jsonName: 'Uid', opt: true, T: 9 /*ScalarType.STRING*/ } - ]); - } - create(value?: PartialMessage
): Header { - const message = globalThis.Object.create((this.messagePrototype!)); - message.groupNumber = 0; - message.groupString = ''; - message.qQ = 0; - if (value !== undefined) - reflectionMergePartial
(this, message, value); - return message; - } - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Header): Header { - const message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - const [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint32 GroupNumber = 1 [json_name = "GroupNumber"];*/ 1: - message.groupNumber = reader.uint32(); - break; - case /* string GroupString = 2 [json_name = "GroupString"];*/ 2: - message.groupString = reader.string(); - break; - case /* uint32 QQ = 5 [json_name = "QQ"];*/ 5: - message.qQ = reader.uint32(); - break; - case /* optional string Uid = 6 [json_name = "Uid"];*/ 6: - message.uid = reader.string(); - break; - default: - const u = options.readUnknownField; - if (u === 'throw') - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - const d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } + constructor() { + super("SysMessage.Header", [ + { no: 1, name: "PeerNumber", kind: "scalar", jsonName: "PeerNumber", T: 13 /*ScalarType.UINT32*/ }, + { no: 2, name: "PeerString", kind: "scalar", jsonName: "PeerString", T: 9 /*ScalarType.STRING*/ }, + { no: 5, name: "Uin", kind: "scalar", jsonName: "Uin", T: 13 /*ScalarType.UINT32*/ }, + { no: 6, name: "Uid", kind: "scalar", jsonName: "Uid", opt: true, T: 9 /*ScalarType.STRING*/ } + ]); + } + create(value?: PartialMessage
): Header { + const message = globalThis.Object.create((this.messagePrototype!)); + message.peerNumber = 0; + message.peerString = ""; + message.uin = 0; + if (value !== undefined) + reflectionMergePartial
(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Header): Header { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* uint32 PeerNumber = 1 [json_name = "PeerNumber"];*/ 1: + message.peerNumber = reader.uint32(); + break; + case /* string PeerString = 2 [json_name = "PeerString"];*/ 2: + message.peerString = reader.string(); + break; + case /* uint32 Uin = 5 [json_name = "Uin"];*/ 5: + message.uin = reader.uint32(); + break; + case /* optional string Uid = 6 [json_name = "Uid"];*/ 6: + message.uid = reader.string(); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: Header, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* uint32 PeerNumber = 1 [json_name = "PeerNumber"]; */ + if (message.peerNumber !== 0) + writer.tag(1, WireType.Varint).uint32(message.peerNumber); + /* string PeerString = 2 [json_name = "PeerString"]; */ + if (message.peerString !== "") + writer.tag(2, WireType.LengthDelimited).string(message.peerString); + /* uint32 Uin = 5 [json_name = "Uin"]; */ + if (message.uin !== 0) + writer.tag(5, WireType.Varint).uint32(message.uin); + /* optional string Uid = 6 [json_name = "Uid"]; */ + if (message.uid !== undefined) + writer.tag(6, WireType.LengthDelimited).string(message.uid); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; } - return message; - } - internalBinaryWrite(message: Header, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { - /* uint32 GroupNumber = 1 [json_name = "GroupNumber"]; */ - if (message.groupNumber !== 0) - writer.tag(1, WireType.Varint).uint32(message.groupNumber); - /* string GroupString = 2 [json_name = "GroupString"]; */ - if (message.groupString !== '') - writer.tag(2, WireType.LengthDelimited).string(message.groupString); - /* uint32 QQ = 5 [json_name = "QQ"]; */ - if (message.qQ !== 0) - writer.tag(5, WireType.Varint).uint32(message.qQ); - /* optional string Uid = 6 [json_name = "Uid"]; */ - if (message.uid !== undefined) - writer.tag(6, WireType.LengthDelimited).string(message.uid); - const u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } } /** * @generated MessageType for protobuf message SysMessage.Header @@ -204,96 +238,198 @@ class Header$Type extends MessageType
{ export const Header = new Header$Type(); // @generated message type with reflection information, may provide speed optimized methods class Body$Type extends MessageType { - constructor() { - super('SysMessage.Body', [ - { no: 1, name: 'MsgType', kind: 'scalar', jsonName: 'MsgType', T: 13 /*ScalarType.UINT32*/ }, - { no: 2, name: 'SubType_0', kind: 'scalar', jsonName: 'SubType0', T: 13 /*ScalarType.UINT32*/ }, - { no: 3, name: 'SubType_1', kind: 'scalar', jsonName: 'SubType1', T: 13 /*ScalarType.UINT32*/ }, - { no: 5, name: 'MsgSeq', kind: 'scalar', jsonName: 'MsgSeq', T: 13 /*ScalarType.UINT32*/ }, - { no: 6, name: 'Time', kind: 'scalar', jsonName: 'Time', T: 13 /*ScalarType.UINT32*/ }, - { no: 12, name: 'MsgID', kind: 'scalar', jsonName: 'MsgID', T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }, - { no: 13, name: 'Other', kind: 'scalar', jsonName: 'Other', T: 13 /*ScalarType.UINT32*/ } - ]); - } - create(value?: PartialMessage): Body { - const message = globalThis.Object.create((this.messagePrototype!)); - message.msgType = 0; - message.subType0 = 0; - message.subType1 = 0; - message.msgSeq = 0; - message.time = 0; - message.msgID = 0n; - message.other = 0; - if (value !== undefined) - reflectionMergePartial(this, message, value); - return message; - } - internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Body): Body { - const message = target ?? this.create(), end = reader.pos + length; - while (reader.pos < end) { - const [fieldNo, wireType] = reader.tag(); - switch (fieldNo) { - case /* uint32 MsgType = 1 [json_name = "MsgType"];*/ 1: - message.msgType = reader.uint32(); - break; - case /* uint32 SubType_0 = 2 [json_name = "SubType0"];*/ 2: - message.subType0 = reader.uint32(); - break; - case /* uint32 SubType_1 = 3 [json_name = "SubType1"];*/ 3: - message.subType1 = reader.uint32(); - break; - case /* uint32 MsgSeq = 5 [json_name = "MsgSeq"];*/ 5: - message.msgSeq = reader.uint32(); - break; - case /* uint32 Time = 6 [json_name = "Time"];*/ 6: - message.time = reader.uint32(); - break; - case /* uint64 MsgID = 12 [json_name = "MsgID"];*/ 12: - message.msgID = reader.uint64().toBigInt(); - break; - case /* uint32 Other = 13 [json_name = "Other"];*/ 13: - message.other = reader.uint32(); - break; - default: - const u = options.readUnknownField; - if (u === 'throw') - throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); - const d = reader.skip(wireType); - if (u !== false) - (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); - } + constructor() { + super("SysMessage.Body", [ + { no: 1, name: "MsgType", kind: "scalar", jsonName: "MsgType", T: 13 /*ScalarType.UINT32*/ }, + { no: 2, name: "SubType_0", kind: "scalar", jsonName: "SubType0", T: 13 /*ScalarType.UINT32*/ }, + { no: 3, name: "SubType_1", kind: "scalar", jsonName: "SubType1", T: 13 /*ScalarType.UINT32*/ }, + { no: 5, name: "MsgSeq", kind: "scalar", jsonName: "MsgSeq", T: 13 /*ScalarType.UINT32*/ }, + { no: 6, name: "Time", kind: "scalar", jsonName: "Time", T: 13 /*ScalarType.UINT32*/ }, + { no: 12, name: "MsgID", kind: "scalar", jsonName: "MsgID", T: 4 /*ScalarType.UINT64*/, L: 0 /*LongType.BIGINT*/ }, + { no: 13, name: "Other", kind: "scalar", jsonName: "Other", T: 13 /*ScalarType.UINT32*/ } + ]); + } + create(value?: PartialMessage): Body { + const message = globalThis.Object.create((this.messagePrototype!)); + message.msgType = 0; + message.subType0 = 0; + message.subType1 = 0; + message.msgSeq = 0; + message.time = 0; + message.msgID = 0n; + message.other = 0; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Body): Body { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* uint32 MsgType = 1 [json_name = "MsgType"];*/ 1: + message.msgType = reader.uint32(); + break; + case /* uint32 SubType_0 = 2 [json_name = "SubType0"];*/ 2: + message.subType0 = reader.uint32(); + break; + case /* uint32 SubType_1 = 3 [json_name = "SubType1"];*/ 3: + message.subType1 = reader.uint32(); + break; + case /* uint32 MsgSeq = 5 [json_name = "MsgSeq"];*/ 5: + message.msgSeq = reader.uint32(); + break; + case /* uint32 Time = 6 [json_name = "Time"];*/ 6: + message.time = reader.uint32(); + break; + case /* uint64 MsgID = 12 [json_name = "MsgID"];*/ 12: + message.msgID = reader.uint64().toBigInt(); + break; + case /* uint32 Other = 13 [json_name = "Other"];*/ 13: + message.other = reader.uint32(); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: Body, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* uint32 MsgType = 1 [json_name = "MsgType"]; */ + if (message.msgType !== 0) + writer.tag(1, WireType.Varint).uint32(message.msgType); + /* uint32 SubType_0 = 2 [json_name = "SubType0"]; */ + if (message.subType0 !== 0) + writer.tag(2, WireType.Varint).uint32(message.subType0); + /* uint32 SubType_1 = 3 [json_name = "SubType1"]; */ + if (message.subType1 !== 0) + writer.tag(3, WireType.Varint).uint32(message.subType1); + /* uint32 MsgSeq = 5 [json_name = "MsgSeq"]; */ + if (message.msgSeq !== 0) + writer.tag(5, WireType.Varint).uint32(message.msgSeq); + /* uint32 Time = 6 [json_name = "Time"]; */ + if (message.time !== 0) + writer.tag(6, WireType.Varint).uint32(message.time); + /* uint64 MsgID = 12 [json_name = "MsgID"]; */ + if (message.msgID !== 0n) + writer.tag(12, WireType.Varint).uint64(message.msgID); + /* uint32 Other = 13 [json_name = "Other"]; */ + if (message.other !== 0) + writer.tag(13, WireType.Varint).uint32(message.other); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; } - return message; - } - internalBinaryWrite(message: Body, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { - /* uint32 MsgType = 1 [json_name = "MsgType"]; */ - if (message.msgType !== 0) - writer.tag(1, WireType.Varint).uint32(message.msgType); - /* uint32 SubType_0 = 2 [json_name = "SubType0"]; */ - if (message.subType0 !== 0) - writer.tag(2, WireType.Varint).uint32(message.subType0); - /* uint32 SubType_1 = 3 [json_name = "SubType1"]; */ - if (message.subType1 !== 0) - writer.tag(3, WireType.Varint).uint32(message.subType1); - /* uint32 MsgSeq = 5 [json_name = "MsgSeq"]; */ - if (message.msgSeq !== 0) - writer.tag(5, WireType.Varint).uint32(message.msgSeq); - /* uint32 Time = 6 [json_name = "Time"]; */ - if (message.time !== 0) - writer.tag(6, WireType.Varint).uint32(message.time); - /* uint64 MsgID = 12 [json_name = "MsgID"]; */ - if (message.msgID !== 0n) - writer.tag(12, WireType.Varint).uint64(message.msgID); - /* uint32 Other = 13 [json_name = "Other"]; */ - if (message.other !== 0) - writer.tag(13, WireType.Varint).uint32(message.other); - const u = options.writeUnknownFields; - if (u !== false) - (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); - return writer; - } } /** * @generated MessageType for protobuf message SysMessage.Body */ export const Body = new Body$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class Event$Type extends MessageType { + constructor() { + super("SysMessage.Event", [ + { no: 1, name: "PeerNumber", kind: "scalar", jsonName: "PeerNumber", T: 13 /*ScalarType.UINT32*/ }, + { no: 3, name: "PeerString", kind: "scalar", jsonName: "PeerString", T: 9 /*ScalarType.STRING*/ } + ]); + } + create(value?: PartialMessage): Event { + const message = globalThis.Object.create((this.messagePrototype!)); + message.peerNumber = 0; + message.peerString = ""; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Event): Event { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* uint32 PeerNumber = 1 [json_name = "PeerNumber"];*/ 1: + message.peerNumber = reader.uint32(); + break; + case /* string PeerString = 3 [json_name = "PeerString"];*/ 3: + message.peerString = reader.string(); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: Event, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* uint32 PeerNumber = 1 [json_name = "PeerNumber"]; */ + if (message.peerNumber !== 0) + writer.tag(1, WireType.Varint).uint32(message.peerNumber); + /* string PeerString = 3 [json_name = "PeerString"]; */ + if (message.peerString !== "") + writer.tag(3, WireType.LengthDelimited).string(message.peerString); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message SysMessage.Event + */ +export const Event = new Event$Type(); +// @generated message type with reflection information, may provide speed optimized methods +class Other$Type extends MessageType { + constructor() { + super("SysMessage.Other", [ + { no: 2, name: "event", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Event } + ]); + } + create(value?: PartialMessage): Other { + const message = globalThis.Object.create((this.messagePrototype!)); + message.event = []; + if (value !== undefined) + reflectionMergePartial(this, message, value); + return message; + } + internalBinaryRead(reader: IBinaryReader, length: number, options: BinaryReadOptions, target?: Other): Other { + let message = target ?? this.create(), end = reader.pos + length; + while (reader.pos < end) { + let [fieldNo, wireType] = reader.tag(); + switch (fieldNo) { + case /* repeated SysMessage.Event event */ 2: + message.event.push(Event.internalBinaryRead(reader, reader.uint32(), options)); + break; + default: + let u = options.readUnknownField; + if (u === "throw") + throw new globalThis.Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`); + let d = reader.skip(wireType); + if (u !== false) + (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d); + } + } + return message; + } + internalBinaryWrite(message: Other, writer: IBinaryWriter, options: BinaryWriteOptions): IBinaryWriter { + /* repeated SysMessage.Event event = 2; */ + for (let i = 0; i < message.event.length; i++) + Event.internalBinaryWrite(message.event[i], writer.tag(2, WireType.LengthDelimited).fork(), options).join(); + let u = options.writeUnknownFields; + if (u !== false) + (u == true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer); + return writer; + } +} +/** + * @generated MessageType for protobuf message SysMessage.Other + */ +export const Other = new Other$Type();