This commit is contained in:
手瓜一十雪 2024-05-24 10:42:21 +08:00
parent 2dcfde8b9a
commit 41500c17a2
3 changed files with 383 additions and 223 deletions

View File

@ -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<string, GroupMember>) => {
// 如果自身是非管理员也许要从这里获取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);

View File

@ -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;
}

View File

@ -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<Data> {
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>): Data {
const message = globalThis.Object.create((this.messagePrototype!));
message.header = [];
message.body = [];
if (value !== undefined)
reflectionMergePartial<Data>(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>): Data {
const message = globalThis.Object.create((this.messagePrototype!));
message.header = [];
message.body = [];
message.other = [];
if (value !== undefined)
reflectionMergePartial<Data>(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<Data> {
export const Data = new Data$Type();
// @generated message type with reflection information, may provide speed optimized methods
class Header$Type extends MessageType<Header> {
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>): Header {
const message = globalThis.Object.create((this.messagePrototype!));
message.groupNumber = 0;
message.groupString = '';
message.qQ = 0;
if (value !== undefined)
reflectionMergePartial<Header>(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>): Header {
const message = globalThis.Object.create((this.messagePrototype!));
message.peerNumber = 0;
message.peerString = "";
message.uin = 0;
if (value !== undefined)
reflectionMergePartial<Header>(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<Header> {
export const Header = new Header$Type();
// @generated message type with reflection information, may provide speed optimized methods
class Body$Type extends MessageType<Body> {
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>): 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<Body>(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>): 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<Body>(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<Event> {
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>): Event {
const message = globalThis.Object.create((this.messagePrototype!));
message.peerNumber = 0;
message.peerString = "";
if (value !== undefined)
reflectionMergePartial<Event>(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<Other> {
constructor() {
super("SysMessage.Other", [
{ no: 2, name: "event", kind: "message", repeat: 1 /*RepeatType.PACKED*/, T: () => Event }
]);
}
create(value?: PartialMessage<Other>): Other {
const message = globalThis.Object.create((this.messagePrototype!));
message.event = [];
if (value !== undefined)
reflectionMergePartial<Other>(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();