fix: 群成员拉取

This commit is contained in:
Alen 2024-10-24 23:00:38 +08:00
parent 0081000ef0
commit 2f08b72d69
2 changed files with 9 additions and 6 deletions

View File

@ -319,18 +319,20 @@ export class NTQQGroupApi {
async tryGetGroupMembersV2(modeListener = false, groupQQ: string, num = 30, timeout = 500): Promise<any> { async tryGetGroupMembersV2(modeListener = false, groupQQ: string, num = 30, timeout = 500): Promise<any> {
const sceneId = this.context.session.getGroupService().createMemberListScene(groupQQ, 'groupMemberList_MainWindow_1'); const sceneId = this.context.session.getGroupService().createMemberListScene(groupQQ, 'groupMemberList_MainWindow_1');
const once = this.core.eventWrapper.registerListen('NodeIKernelGroupListener/onMemberListChange', 1, timeout, (params) => params.sceneId === sceneId) const once = this.core.eventWrapper.registerListen('NodeIKernelGroupListener/onMemberListChange', 1, timeout, (params) => params.sceneId === sceneId)
.catch(); .catch(() => {});
const result = await this.context.session.getGroupService().getNextMemberList(sceneId, undefined, num); const result = await this.context.session.getGroupService().getNextMemberList(sceneId, undefined, num);
let resMode2;
if (result.errCode !== 0) { if (result.errCode !== 0) {
throw new Error('获取群成员列表出错,' + result.errMsg); throw new Error('获取群成员列表出错,' + result.errMsg);
} }
let resMode2;
if (modeListener) { if (modeListener) {
const ret = (await once); const ret = (await once)?.[0];
resMode2 = ret[0]; if (ret) {
resMode2 = ret;
}
} }
this.context.session.getGroupService().destroyMemberListScene(sceneId); this.context.session.getGroupService().destroyMemberListScene(sceneId);
return modeListener ? resMode2 : result.result; return resMode2 || result.result;
} }
async getGroupMembersV2(groupQQ: string): Promise<Map<string, GroupMember>> { async getGroupMembersV2(groupQQ: string): Promise<Map<string, GroupMember>> {

View File

@ -71,7 +71,8 @@ export class NodeIKernelGroupListener {
sceneId: string, sceneId: string,
ids: string[], ids: string[],
infos: Map<string, GroupMember>, // uid -> GroupMember infos: Map<string, GroupMember>, // uid -> GroupMember
finish: boolean, hasPrev: boolean,
hasNext: boolean,
hasRobot: boolean hasRobot: boolean
}) { }) {
} }