diff --git a/src/core/apis/group.ts b/src/core/apis/group.ts index 0653afdd..8a5eb9a1 100644 --- a/src/core/apis/group.ts +++ b/src/core/apis/group.ts @@ -79,35 +79,6 @@ export class NTQQGroupApi { return groupList; } - async GetGroupMembersV3(groupQQ: string, num = 3000, timeout = 2500): Promise<{ - infos: Map; - finish: boolean; - hasNext: boolean | undefined; - listenerMode: boolean; - }> { - const sceneId = this.context.session.getGroupService().createMemberListScene(groupQQ, 'groupMemberList_MainWindow_1'); - const once = this.core.eventWrapper.registerListen('NodeIKernelGroupListener/onMemberListChange', (params) => params.sceneId === sceneId, 0, timeout) - .catch(() => { }); - const result = await this.context.session.getGroupService().getNextMemberList(sceneId, undefined, num); - if (result.errCode !== 0) { - throw new Error('获取群成员列表出错,' + result.errMsg); - } - let resMode2; - if (result.result.finish && result.result.infos.size === 0) { - const ret = (await once)?.[0]; - if (ret) { - resMode2 = ret; - } - } - this.context.session.getGroupService().destroyMemberListScene(sceneId); - return { - infos: new Map([...(resMode2?.infos ?? []), ...result.result.infos]), - finish: result.result.finish, - hasNext: resMode2?.hasNext, - listenerMode: resMode2?.hasNext !== undefined - }; - } - async getGroupExtFE0Info(groupCode: string[], forced = true) { return this.context.session.getGroupService().getGroupExt0xEF0Info( groupCode, @@ -203,6 +174,8 @@ export class NTQQGroupApi { async getGroupMember(groupCode: string | number, memberUinOrUid: string | number) { const groupCodeStr = groupCode.toString(); const memberUinOrUidStr = memberUinOrUid.toString(); + + // 检查群缓存 let members = this.groupMemberCache.get(groupCodeStr); if (!members) { await this.refreshGroupMemberCache(groupCodeStr); @@ -218,9 +191,11 @@ export class NTQQGroupApi { return member; } + let member = getMember(); + // 不存在群友缓存 尝试刷新 if (!member) { - members = (await this.getGroupMemberAll(groupCodeStr)).result.infos; + await this.refreshGroupMemberCache(groupCode.toString()); member = getMember(); } return member;