diff --git a/src/core/apis/friend.ts b/src/core/apis/friend.ts index cc808ffb..64cd045f 100644 --- a/src/core/apis/friend.ts +++ b/src/core/apis/friend.ts @@ -70,7 +70,9 @@ export class NTQQFriendApi { async isBuddy(uid: string) { return this.context.session.getBuddyService().isBuddy(uid); } - + async clearBuddyReqUnreadCnt(){ + return this.context.session.getBuddyService().clearBuddyReqUnreadCnt(); + } /** * @deprecated * @param forced diff --git a/src/core/entities/notify.ts b/src/core/entities/notify.ts index 9fb8c9ba..e6918dc1 100644 --- a/src/core/entities/notify.ts +++ b/src/core/entities/notify.ts @@ -64,6 +64,7 @@ export enum BuddyReqType { } export interface FriendRequest { + isBuddy?: boolean; isInitiator?: boolean; isDecide: boolean; friendUid: string; diff --git a/src/core/services/NodeIKernelBuddyService.ts b/src/core/services/NodeIKernelBuddyService.ts index 9a58813f..731b39b1 100644 --- a/src/core/services/NodeIKernelBuddyService.ts +++ b/src/core/services/NodeIKernelBuddyService.ts @@ -65,7 +65,7 @@ export interface NodeIKernelBuddyService { delBuddyReq(uid: number): void; - clearBuddyReqUnreadCnt(): void; + clearBuddyReqUnreadCnt(): Promise; reqToAddFriends(uid: number, msg: string): void; diff --git a/src/onebot/index.ts b/src/onebot/index.ts index 782f1042..cabcbc42 100644 --- a/src/onebot/index.ts +++ b/src/onebot/index.ts @@ -283,8 +283,16 @@ export class NapCatOneBot11Adapter { private initBuddyListener() { const buddyListener = new BuddyListener(); - buddyListener.onBuddyReqChange = reqs => { - reqs.buddyReqs.forEach(async req => { + buddyListener.onBuddyReqChange = async reqs => { + this.core.apis.FriendApi.clearBuddyReqUnreadCnt(); + for (let i = 0; i < reqs.unreadNums; i++) { + const req = reqs.buddyReqs[i]; + //req.isBuddy === false是单向好友 null为常规情况 + // if (req.isBuddy === false && ) { + // const NTQQFriendApi = this.core.apis.FriendApi; + // await NTQQFriendApi.handleFriendRequest(req.friendUid + '|' + req.reqTime, true); + // } + if (!!req.isInitiator || (req.isDecide && req.reqType !== BuddyReqType.KMEINITIATORWAITPEERCONFIRM)) { return; } @@ -299,7 +307,7 @@ export class NapCatOneBot11Adapter { } catch (e) { this.context.logger.logDebug('获取加好友者QQ号失败', e); } - }); + } }; this.context.session.getBuddyService().addKernelBuddyListener(