From 984b5d6c40de35022e08d6b62eb2c9162cdee489 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sat, 24 Aug 2024 11:26:05 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A5=BD=E5=8F=8B=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E6=8E=A8=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/apis/friend.ts | 4 +++- src/core/entities/notify.ts | 1 + src/core/services/NodeIKernelBuddyService.ts | 2 +- src/onebot/index.ts | 14 +++++++++++--- 4 files changed, 16 insertions(+), 5 deletions(-) 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(