diff --git a/src/core/apis/group.ts b/src/core/apis/group.ts index fd347c3e..35674530 100644 --- a/src/core/apis/group.ts +++ b/src/core/apis/group.ts @@ -1,6 +1,5 @@ import { GeneralCallResult, - Group, GroupMember, NTGroupMemberRole, NTGroupRequestOperateTypes, @@ -112,24 +111,16 @@ export class NTQQGroupApi { return this.context.session.getGroupService().getAllMemberList(groupCode, forced); } - async refreshGroupMemberCache(groupCode: string) { try { const members = await this.getGroupMemberAll(groupCode, true); - let existingMembers = this.groupMemberCache.get(groupCode); - if (!existingMembers) { - existingMembers = new Map(); - this.groupMemberCache.set(groupCode, existingMembers); - } - members.result.infos.forEach((value) => { - existingMembers.set(value.uid, { ...value, ...existingMembers.get(value.uid) }); - }); + this.groupMemberCache.set(groupCode, members.result.infos); } catch (e) { this.context.logger.logError(`刷新群成员缓存失败, 群号: ${groupCode}, 错误: ${e}`); } return this.groupMemberCache; } - + async getGroupMember(groupCode: string | number, memberUinOrUid: string | number) { const groupCodeStr = groupCode.toString(); const memberUinOrUidStr = memberUinOrUid.toString(); @@ -161,15 +152,15 @@ export class NTQQGroupApi { return this.context.session.getGroupService().getGroupRecommendContactArkJson(groupCode); } - async CreatGroupFileFolder(groupCode: string, folderName: string) { + async creatGroupFileFolder(groupCode: string, folderName: string) { return this.context.session.getRichMediaService().createGroupFolder(groupCode, folderName); } - async DelGroupFile(groupCode: string, files: Array) { + async delGroupFile(groupCode: string, files: Array) { return this.context.session.getRichMediaService().deleteGroupFile(groupCode, [102], files); } - async DelGroupFileFolder(groupCode: string, folderId: string) { + async delGroupFileFolder(groupCode: string, folderId: string) { return this.context.session.getRichMediaService().deleteGroupFolder(groupCode, folderId); } diff --git a/src/onebot/action/go-cqhttp/CreateGroupFileFolder.ts b/src/onebot/action/go-cqhttp/CreateGroupFileFolder.ts index 01af44c6..3764f148 100644 --- a/src/onebot/action/go-cqhttp/CreateGroupFileFolder.ts +++ b/src/onebot/action/go-cqhttp/CreateGroupFileFolder.ts @@ -13,6 +13,6 @@ export class CreateGroupFileFolder extends OneBotAction { actionName = ActionName.GoCQHTTP_CreateGroupFileFolder; payloadSchema = SchemaData; async _handle(payload: Payload) { - return (await this.core.apis.GroupApi.CreatGroupFileFolder(payload.group_id.toString(), payload.folder_name)).resultWithGroupItem; + return (await this.core.apis.GroupApi.creatGroupFileFolder(payload.group_id.toString(), payload.folder_name)).resultWithGroupItem; } } diff --git a/src/onebot/action/go-cqhttp/DeleteGroupFile.ts b/src/onebot/action/go-cqhttp/DeleteGroupFile.ts index 244a5368..85b43cce 100644 --- a/src/onebot/action/go-cqhttp/DeleteGroupFile.ts +++ b/src/onebot/action/go-cqhttp/DeleteGroupFile.ts @@ -17,6 +17,6 @@ export class DeleteGroupFile extends OneBotAction { async _handle(payload: Payload) { const data = FileNapCatOneBotUUID.decodeModelId(payload.file_id); if (!data) throw new Error('Invalid file_id'); - return await this.core.apis.GroupApi.DelGroupFile(payload.group_id.toString(), [data.fileId]); + return await this.core.apis.GroupApi.delGroupFile(payload.group_id.toString(), [data.fileId]); } } diff --git a/src/onebot/action/go-cqhttp/DeleteGroupFileFolder.ts b/src/onebot/action/go-cqhttp/DeleteGroupFileFolder.ts index c6e20df9..f8a813a4 100644 --- a/src/onebot/action/go-cqhttp/DeleteGroupFileFolder.ts +++ b/src/onebot/action/go-cqhttp/DeleteGroupFileFolder.ts @@ -14,7 +14,7 @@ export class DeleteGroupFileFolder extends OneBotAction { actionName = ActionName.GoCQHTTP_DeleteGroupFileFolder; payloadSchema = SchemaData; async _handle(payload: Payload) { - return (await this.core.apis.GroupApi.DelGroupFileFolder( + return (await this.core.apis.GroupApi.delGroupFileFolder( payload.group_id.toString(), payload.folder ?? payload.folder_id ?? '')).groupFileCommonResult; } } diff --git a/src/onebot/api/msg.ts b/src/onebot/api/msg.ts index a9decfea..94c99fd1 100644 --- a/src/onebot/api/msg.ts +++ b/src/onebot/api/msg.ts @@ -980,7 +980,14 @@ export class OneBotMsgApi { ); } else if (SysMessage.contentHead.type == 34 && SysMessage.body?.msgContent) { const groupChange = new NapProtoMsg(GroupChange).decode(SysMessage.body.msgContent); - this.core.apis.GroupApi.refreshGroupMemberCache(groupChange.groupUin.toString()).then().catch(); + if (groupChange.memberUid === this.core.selfInfo.uid) { + setTimeout(() => { + this.core.apis.GroupApi.groupMemberCache.delete(groupChange.groupUin.toString()); + }, 5000); + // 自己被踢了 5S后回收 + } else { + this.core.apis.GroupApi.refreshGroupMemberCache(groupChange.groupUin.toString()).then().catch(); + } return new OB11GroupDecreaseEvent( this.core, groupChange.groupUin,