diff --git a/src/core/core.ts b/src/core/core.ts index 59d9cbc7..71a8241e 100644 --- a/src/core/core.ts +++ b/src/core/core.ts @@ -4,7 +4,7 @@ import fs from 'node:fs'; import { InstanceContext } from './wrapper'; import { proxiedListenerOf } from '@/common/utils/proxy-handler'; import { GroupListener, MsgListener, ProfileListener } from './listeners'; -import { GroupMember, SelfInfo } from './entities'; +import { DataSource, GroupMember, SelfInfo } from './entities'; import { LegacyNTEventWrapper } from '@/common/framework/event-legacy'; import { NTQQFileApi, NTQQFriendApi, NTQQGroupApi, NTQQMsgApi, NTQQSystemApi, NTQQUserApi, NTQQWebApi } from './apis'; import os from 'node:os'; @@ -164,9 +164,9 @@ export class NapCatCore { } // console.log('onMemberListChange', groupCode, arg); }; - groupListener.onMemberInfoChange = (groupCode, changeType, members) => { + groupListener.onMemberInfoChange = (groupCode, dataSource, members) => { //console.log('onMemberInfoChange', groupCode, changeType, members); - if (changeType === 0 && members.get(this.selfInfo.uid)?.isDelete) { + if (dataSource === DataSource.LOCAL && members.get(this.selfInfo.uid)?.isDelete) { // 自身退群或者被踢退群 5s用于Api操作 之后不再出现 setTimeout(() => { this.apis.GroupApi.groupCache.delete(groupCode); diff --git a/src/core/entities/group.ts b/src/core/entities/group.ts index 980fe2c7..8585cbff 100644 --- a/src/core/entities/group.ts +++ b/src/core/entities/group.ts @@ -12,6 +12,10 @@ export interface kickMemberV2Req{ kickListUids: Array, kickMsg: string } +export enum DataSource { + LOCAL, + REMOTE +} export enum GroupListUpdateType { REFRESHALL, GETALL, diff --git a/src/core/listeners/NodeIKernelGroupListener.ts b/src/core/listeners/NodeIKernelGroupListener.ts index c518d7d7..d19a73e9 100644 --- a/src/core/listeners/NodeIKernelGroupListener.ts +++ b/src/core/listeners/NodeIKernelGroupListener.ts @@ -1,4 +1,4 @@ -import { Group, GroupListUpdateType, GroupMember, GroupNotify } from '@/core/entities'; +import { DataSource, Group, GroupListUpdateType, GroupMember, GroupNotify } from '@/core/entities'; export interface IGroupListener { onGroupListUpdate(updateType: GroupListUpdateType, groupList: Group[]): void; @@ -31,7 +31,7 @@ export interface IGroupListener { hasRobot: boolean }): void; - onMemberInfoChange(groupCode: string, changeType: number, members: Map): void; + onMemberInfoChange(groupCode: string, dataSource: DataSource, members: Map): void; onSearchMemberChange(...args: unknown[]): void; @@ -124,8 +124,8 @@ export class GroupListener implements IGroupListener { onJoinGroupNoVerifyFlag(...args: unknown[]) { } - - onMemberInfoChange(groupCode: string, changeType: number, members: Map) { + + onMemberInfoChange(groupCode: string, dateSource: DataSource, members: Map) { } onMemberListChange(arg: { @@ -225,8 +225,8 @@ export class DebugGroupListener implements IGroupListener { console.log('onJoinGroupNoVerifyFlag:', ...args); } - onMemberInfoChange(groupCode: string, changeType: number, members: Map) { - console.log('onMemberInfoChange:', groupCode, changeType, members); + onMemberInfoChange(groupCode: string, dataSource: DataSource, members: Map) { + console.log('onMemberInfoChange:', groupCode, dataSource, members); } onMemberListChange(...args: unknown[]) { diff --git a/src/onebot/index.ts b/src/onebot/index.ts index d034277f..a0538c0c 100644 --- a/src/onebot/index.ts +++ b/src/onebot/index.ts @@ -11,6 +11,7 @@ import { GroupMemberRole, GroupNotifyMsgType, GroupNotifyMsgStatus, + DataSource, } from '@/core'; import { OB11Config, OB11ConfigLoader } from '@/onebot/helper/config'; import { OneBotApiContextType } from '@/onebot/types'; @@ -425,9 +426,9 @@ export class NapCatOneBot11Adapter { } }; - groupListener.onMemberInfoChange = async (groupCode, changeType, members) => { + groupListener.onMemberInfoChange = async (groupCode, dataSource, members) => { //this.context.logger.logDebug('收到群成员信息变动通知', groupCode, changeType); - if (changeType === 0) { + if (dataSource === DataSource.LOCAL) { const existMembers = this.core.apis.GroupApi.groupMemberCache.get(groupCode); if (!existMembers) return; members.forEach((member) => {