This commit is contained in:
idranme 2024-10-19 18:09:23 +08:00
parent 5b90a25f8f
commit c6dddcd664
8 changed files with 76 additions and 68 deletions

View File

@ -12,7 +12,7 @@
"deploy-win": "cmd /c \"xcopy /C /S /Y dist\\* %LITELOADERQQNT_PROFILE%\\plugins\\LLOneBot\\\"", "deploy-win": "cmd /c \"xcopy /C /S /Y dist\\* %LITELOADERQQNT_PROFILE%\\plugins\\LLOneBot\\\"",
"format": "prettier -cw .", "format": "prettier -cw .",
"check": "tsc", "check": "tsc",
"compile:proto": "pbjs --no-create --no-convert --no-encode --no-verify -t static-module -w es6 -p src/ntqqapi/proto -o src/ntqqapi/proto/compiled.js systemMessage.proto profileLikeTip.proto groupMemberIncrease.proto && pbts -o src/ntqqapi/proto/compiled.d.ts src/ntqqapi/proto/compiled.js" "compile:proto": "pbjs --no-create --no-convert --no-encode --no-verify -t static-module -w es6 -p src/ntqqapi/proto -o src/ntqqapi/proto/compiled.js systemMessage.proto profileLikeTip.proto groupMemberChange.proto && pbts -o src/ntqqapi/proto/compiled.d.ts src/ntqqapi/proto/compiled.js"
}, },
"author": "", "author": "",
"license": "MIT", "license": "MIT",

View File

@ -171,7 +171,7 @@ function onLoad() {
log(arg) log(arg)
}) })
const intervalId = setInterval(() => { const intervalId = setInterval(async () => {
const self = Object.assign(selfInfo, { const self = Object.assign(selfInfo, {
uin: globalThis.authData?.uin, uin: globalThis.authData?.uin,
uid: globalThis.authData?.uid, uid: globalThis.authData?.uid,
@ -185,6 +185,7 @@ function onLoad() {
if (config.enableLLOB && (config.satori.enable || config.ob11.enable)) { if (config.enableLLOB && (config.satori.enable || config.ob11.enable)) {
startHook() startHook()
await ctx.sleep(300)
} else { } else {
llonebotError.otherError = 'LLOneBot 未启动' llonebotError.otherError = 'LLOneBot 未启动'
log('LLOneBot 开关设置为关闭,不启动 LLOneBot') log('LLOneBot 开关设置为关闭,不启动 LLOneBot')

View File

@ -173,7 +173,7 @@ export class NTQQUserApi extends Service {
async getUinByUidV2(uid: string) { async getUinByUidV2(uid: string) {
let uin = (await invoke('nodeIKernelGroupService/getUinByUids', [{ uidList: [uid] }])).uins.get(uid) let uin = (await invoke('nodeIKernelGroupService/getUinByUids', [{ uidList: [uid] }])).uins.get(uid)
if (uin) return uin if (uin && uin !== '0') return uin
uin = (await invoke('nodeIKernelProfileService/getUinByUid', [{ callFrom: 'FriendsServiceImpl', uid: [uid] }])).get(uid) uin = (await invoke('nodeIKernelProfileService/getUinByUid', [{ callFrom: 'FriendsServiceImpl', uid: [uid] }])).get(uid)
if (uin) return uin if (uin) return uin
uin = (await invoke('nodeIKernelUixConvertService/getUin', [{ uids: [uid] }])).uinInfo.get(uid) uin = (await invoke('nodeIKernelUixConvertService/getUin', [{ uids: [uid] }])).uinInfo.get(uid)

View File

@ -461,64 +461,64 @@ export namespace SysMsg {
public static getTypeUrl(typeUrlPrefix?: string): string; public static getTypeUrl(typeUrlPrefix?: string): string;
} }
/** Properties of a GroupMemberIncrease. */ /** Properties of a GroupMemberChange. */
interface IGroupMemberIncrease { interface IGroupMemberChange {
/** GroupMemberIncrease groupCode */ /** GroupMemberChange groupCode */
groupCode?: (number|null); groupCode?: (number|null);
/** GroupMemberIncrease memberUid */ /** GroupMemberChange memberUid */
memberUid?: (string|null); memberUid?: (string|null);
/** GroupMemberIncrease type */ /** GroupMemberChange type */
type?: (number|null); type?: (number|null);
/** GroupMemberIncrease adminUid */ /** GroupMemberChange adminUid */
adminUid?: (string|null); adminUid?: (string|null);
} }
/** Represents a GroupMemberIncrease. */ /** Represents a GroupMemberChange. */
class GroupMemberIncrease implements IGroupMemberIncrease { class GroupMemberChange implements IGroupMemberChange {
/** /**
* Constructs a new GroupMemberIncrease. * Constructs a new GroupMemberChange.
* @param [properties] Properties to set * @param [properties] Properties to set
*/ */
constructor(properties?: SysMsg.IGroupMemberIncrease); constructor(properties?: SysMsg.IGroupMemberChange);
/** GroupMemberIncrease groupCode. */ /** GroupMemberChange groupCode. */
public groupCode: number; public groupCode: number;
/** GroupMemberIncrease memberUid. */ /** GroupMemberChange memberUid. */
public memberUid: string; public memberUid: string;
/** GroupMemberIncrease type. */ /** GroupMemberChange type. */
public type: number; public type: number;
/** GroupMemberIncrease adminUid. */ /** GroupMemberChange adminUid. */
public adminUid: string; public adminUid: string;
/** /**
* Decodes a GroupMemberIncrease message from the specified reader or buffer. * Decodes a GroupMemberChange message from the specified reader or buffer.
* @param reader Reader or buffer to decode from * @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand * @param [length] Message length if known beforehand
* @returns GroupMemberIncrease * @returns GroupMemberChange
* @throws {Error} If the payload is not a reader or valid buffer * @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing * @throws {$protobuf.util.ProtocolError} If required fields are missing
*/ */
public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): SysMsg.GroupMemberIncrease; public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): SysMsg.GroupMemberChange;
/** /**
* Decodes a GroupMemberIncrease message from the specified reader or buffer, length delimited. * Decodes a GroupMemberChange message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from * @param reader Reader or buffer to decode from
* @returns GroupMemberIncrease * @returns GroupMemberChange
* @throws {Error} If the payload is not a reader or valid buffer * @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing * @throws {$protobuf.util.ProtocolError} If required fields are missing
*/ */
public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): SysMsg.GroupMemberIncrease; public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): SysMsg.GroupMemberChange;
/** /**
* Gets the default type url for GroupMemberIncrease * Gets the default type url for GroupMemberChange
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url * @returns The default type url
*/ */

View File

@ -1015,27 +1015,27 @@ export const SysMsg = $root.SysMsg = (() => {
return ProfileLikeTip; return ProfileLikeTip;
})(); })();
SysMsg.GroupMemberIncrease = (function() { SysMsg.GroupMemberChange = (function() {
/** /**
* Properties of a GroupMemberIncrease. * Properties of a GroupMemberChange.
* @memberof SysMsg * @memberof SysMsg
* @interface IGroupMemberIncrease * @interface IGroupMemberChange
* @property {number|null} [groupCode] GroupMemberIncrease groupCode * @property {number|null} [groupCode] GroupMemberChange groupCode
* @property {string|null} [memberUid] GroupMemberIncrease memberUid * @property {string|null} [memberUid] GroupMemberChange memberUid
* @property {number|null} [type] GroupMemberIncrease type * @property {number|null} [type] GroupMemberChange type
* @property {string|null} [adminUid] GroupMemberIncrease adminUid * @property {string|null} [adminUid] GroupMemberChange adminUid
*/ */
/** /**
* Constructs a new GroupMemberIncrease. * Constructs a new GroupMemberChange.
* @memberof SysMsg * @memberof SysMsg
* @classdesc Represents a GroupMemberIncrease. * @classdesc Represents a GroupMemberChange.
* @implements IGroupMemberIncrease * @implements IGroupMemberChange
* @constructor * @constructor
* @param {SysMsg.IGroupMemberIncrease=} [properties] Properties to set * @param {SysMsg.IGroupMemberChange=} [properties] Properties to set
*/ */
function GroupMemberIncrease(properties) { function GroupMemberChange(properties) {
if (properties) if (properties)
for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i) for (let keys = Object.keys(properties), i = 0; i < keys.length; ++i)
if (properties[keys[i]] != null) if (properties[keys[i]] != null)
@ -1043,52 +1043,52 @@ export const SysMsg = $root.SysMsg = (() => {
} }
/** /**
* GroupMemberIncrease groupCode. * GroupMemberChange groupCode.
* @member {number} groupCode * @member {number} groupCode
* @memberof SysMsg.GroupMemberIncrease * @memberof SysMsg.GroupMemberChange
* @instance * @instance
*/ */
GroupMemberIncrease.prototype.groupCode = 0; GroupMemberChange.prototype.groupCode = 0;
/** /**
* GroupMemberIncrease memberUid. * GroupMemberChange memberUid.
* @member {string} memberUid * @member {string} memberUid
* @memberof SysMsg.GroupMemberIncrease * @memberof SysMsg.GroupMemberChange
* @instance * @instance
*/ */
GroupMemberIncrease.prototype.memberUid = ""; GroupMemberChange.prototype.memberUid = "";
/** /**
* GroupMemberIncrease type. * GroupMemberChange type.
* @member {number} type * @member {number} type
* @memberof SysMsg.GroupMemberIncrease * @memberof SysMsg.GroupMemberChange
* @instance * @instance
*/ */
GroupMemberIncrease.prototype.type = 0; GroupMemberChange.prototype.type = 0;
/** /**
* GroupMemberIncrease adminUid. * GroupMemberChange adminUid.
* @member {string} adminUid * @member {string} adminUid
* @memberof SysMsg.GroupMemberIncrease * @memberof SysMsg.GroupMemberChange
* @instance * @instance
*/ */
GroupMemberIncrease.prototype.adminUid = ""; GroupMemberChange.prototype.adminUid = "";
/** /**
* Decodes a GroupMemberIncrease message from the specified reader or buffer. * Decodes a GroupMemberChange message from the specified reader or buffer.
* @function decode * @function decode
* @memberof SysMsg.GroupMemberIncrease * @memberof SysMsg.GroupMemberChange
* @static * @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @param {number} [length] Message length if known beforehand * @param {number} [length] Message length if known beforehand
* @returns {SysMsg.GroupMemberIncrease} GroupMemberIncrease * @returns {SysMsg.GroupMemberChange} GroupMemberChange
* @throws {Error} If the payload is not a reader or valid buffer * @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing * @throws {$protobuf.util.ProtocolError} If required fields are missing
*/ */
GroupMemberIncrease.decode = function decode(reader, length) { GroupMemberChange.decode = function decode(reader, length) {
if (!(reader instanceof $Reader)) if (!(reader instanceof $Reader))
reader = $Reader.create(reader); reader = $Reader.create(reader);
let end = length === undefined ? reader.len : reader.pos + length, message = new $root.SysMsg.GroupMemberIncrease(); let end = length === undefined ? reader.len : reader.pos + length, message = new $root.SysMsg.GroupMemberChange();
while (reader.pos < end) { while (reader.pos < end) {
let tag = reader.uint32(); let tag = reader.uint32();
switch (tag >>> 3) { switch (tag >>> 3) {
@ -1117,37 +1117,37 @@ export const SysMsg = $root.SysMsg = (() => {
}; };
/** /**
* Decodes a GroupMemberIncrease message from the specified reader or buffer, length delimited. * Decodes a GroupMemberChange message from the specified reader or buffer, length delimited.
* @function decodeDelimited * @function decodeDelimited
* @memberof SysMsg.GroupMemberIncrease * @memberof SysMsg.GroupMemberChange
* @static * @static
* @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
* @returns {SysMsg.GroupMemberIncrease} GroupMemberIncrease * @returns {SysMsg.GroupMemberChange} GroupMemberChange
* @throws {Error} If the payload is not a reader or valid buffer * @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing * @throws {$protobuf.util.ProtocolError} If required fields are missing
*/ */
GroupMemberIncrease.decodeDelimited = function decodeDelimited(reader) { GroupMemberChange.decodeDelimited = function decodeDelimited(reader) {
if (!(reader instanceof $Reader)) if (!(reader instanceof $Reader))
reader = new $Reader(reader); reader = new $Reader(reader);
return this.decode(reader, reader.uint32()); return this.decode(reader, reader.uint32());
}; };
/** /**
* Gets the default type url for GroupMemberIncrease * Gets the default type url for GroupMemberChange
* @function getTypeUrl * @function getTypeUrl
* @memberof SysMsg.GroupMemberIncrease * @memberof SysMsg.GroupMemberChange
* @static * @static
* @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com") * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns {string} The default type url * @returns {string} The default type url
*/ */
GroupMemberIncrease.getTypeUrl = function getTypeUrl(typeUrlPrefix) { GroupMemberChange.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
if (typeUrlPrefix === undefined) { if (typeUrlPrefix === undefined) {
typeUrlPrefix = "type.googleapis.com"; typeUrlPrefix = "type.googleapis.com";
} }
return typeUrlPrefix + "/SysMsg.GroupMemberIncrease"; return typeUrlPrefix + "/SysMsg.GroupMemberChange";
}; };
return GroupMemberIncrease; return GroupMemberChange;
})(); })();
return SysMsg; return SysMsg;

View File

@ -1,10 +1,9 @@
syntax = "proto3"; syntax = "proto3";
package SysMsg; package SysMsg;
// GroupChange? message GroupMemberChange {
message GroupMemberIncrease {
uint32 groupCode = 1; uint32 groupCode = 1;
string memberUid = 3; string memberUid = 3;
uint32 type = 4; // 130: 131: uint32 type = 4; // 130: 131:
string adminUid = 5; string adminUid = 5;
} }

View File

@ -362,14 +362,22 @@ class OneBot11Adapter extends Service {
const event = new OB11ProfileLikeEvent(detail.uin!, detail.nickname!, +times) const event = new OB11ProfileLikeEvent(detail.uin!, detail.nickname!, +times)
this.dispatch(event) this.dispatch(event)
} else if (msgType === 33) { } else if (msgType === 33) {
const tip = SysMsg.GroupMemberIncrease.decode(sysMsg.bodyWrapper!.body!) const tip = SysMsg.GroupMemberChange.decode(sysMsg.bodyWrapper!.body!)
if (tip.type !== 130) return if (tip.type !== 130) return
this.ctx.logger.info('群成员增加', tip) this.ctx.logger.info('群成员增加', tip)
const memberUin = await this.ctx.ntUserApi.getUinByUid(tip.memberUid) const memberUin = await this.ctx.ntUserApi.getUinByUid(tip.memberUid)
const operatorUin = await this.ctx.ntUserApi.getUinByUid(tip.adminUid) const operatorUin = await this.ctx.ntUserApi.getUinByUid(tip.adminUid)
const event = new OB11GroupIncreaseEvent(tip.groupCode, +memberUin, +operatorUin) const event = new OB11GroupIncreaseEvent(tip.groupCode, +memberUin, +operatorUin)
this.dispatch(event) this.dispatch(event)
} }/* else if (msgType === 34) {
const tip = SysMsg.GroupMemberChange.decode(sysMsg.bodyWrapper!.body!)
this.ctx.logger.info('群成员减少', tip)
const memberUin = await this.ctx.ntUserApi.getUinByUid(tip.memberUid)
const operatorUin = await this.ctx.ntUserApi.getUinByUid(tip.adminUid) //0
const subType = tip.type === 130 ? 'leave' : 'kick'
const event = new OB11GroupDecreaseEvent(tip.groupCode, +memberUin, +operatorUin, subType)
this.dispatch(event)
}*/
}) })
} }
} }

View File

@ -12,7 +12,7 @@ export class OB11GroupDecreaseEvent extends OB11GroupNoticeEvent {
constructor(groupId: number, userId: number, operatorId: number, subType: GroupDecreaseSubType = 'leave') { constructor(groupId: number, userId: number, operatorId: number, subType: GroupDecreaseSubType = 'leave') {
super() super()
this.group_id = groupId this.group_id = groupId
this.operator_id = operatorId // 实际上不应该这么实现,但是现在还没有办法识别用户是被踢出的,还是自己主动退出的 this.operator_id = operatorId
this.user_id = userId this.user_id = userId
this.sub_type = subType this.sub_type = subType
} }