diff --git a/src/core/apis/group.ts b/src/core/apis/group.ts index d1c9a885..711b864e 100644 --- a/src/core/apis/group.ts +++ b/src/core/apis/group.ts @@ -375,8 +375,10 @@ export class NTQQGroupApi { }; } - async getGroupMembersV2(groupQQ: string, num = 3000): Promise> { - //console.log('getGroupMembers -->', groupQQ); + async getGroupMembersV2(groupQQ: string, num = 3000, no_cache: boolean = false): Promise> { + if (no_cache) { + return (await this.getGroupMemberAll(groupQQ, true)).result.infos; + } let res = await this.GetGroupMembersV3(groupQQ, num); let ret = res.infos; if (res.infos.size === 0 && !res.listenerMode) { @@ -386,14 +388,13 @@ export class NTQQGroupApi { if (res.infos.size === 0) { ret = (await this.getGroupMemberAll(groupQQ)).result.infos; } - //console.log("<---------------") return ret; } async getGroupMembers(groupQQ: string, num = 3000): Promise> { const groupService = this.context.session.getGroupService(); const sceneId = groupService.createMemberListScene(groupQQ, 'groupMemberList_MainWindow'); - const result = await groupService.getNextMemberList(sceneId!, undefined, num); + const result = await groupService.getNextMemberList(sceneId, undefined, num); if (result.errCode !== 0) { throw new Error('获取群成员列表出错,' + result.errMsg); } @@ -401,8 +402,8 @@ export class NTQQGroupApi { return result.result.infos; } - async getGroupFileCount(Gids: Array) { - return this.context.session.getRichMediaService().batchGetGroupFileCount(Gids); + async getGroupFileCount(group_ids: Array) { + return this.context.session.getRichMediaService().batchGetGroupFileCount(group_ids); } async getArkJsonGroupShare(GroupCode: string) { diff --git a/src/onebot/action/group/GetGroupMemberList.ts b/src/onebot/action/group/GetGroupMemberList.ts index 018a6f4d..eb4a62a1 100644 --- a/src/onebot/action/group/GetGroupMemberList.ts +++ b/src/onebot/action/group/GetGroupMemberList.ts @@ -24,12 +24,11 @@ export class GetGroupMemberList extends BaseAction { const noCache = payload.no_cache ? this.stringToBoolean(payload.no_cache) : false; const memberCache = this.core.apis.GroupApi.groupMemberCache; let groupMembers; - if (noCache) { - groupMembers = await this.core.apis.GroupApi.getGroupMembersV2(groupIdStr); - } else { + try { + groupMembers = await this.core.apis.GroupApi.getGroupMembersV2(groupIdStr, 3000, noCache); + } catch (error) { groupMembers = memberCache.get(groupIdStr) ?? await this.core.apis.GroupApi.getGroupMembersV2(groupIdStr); } - const memberPromises = Array.from(groupMembers.values()).map(item => OB11Entities.groupMember(groupIdStr, item) );