fix: 好友申请重复推送

This commit is contained in:
手瓜一十雪
2024-08-24 11:26:05 +08:00
parent 0e3a4191a9
commit 984b5d6c40
4 changed files with 16 additions and 5 deletions

View File

@@ -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

View File

@@ -64,6 +64,7 @@ export enum BuddyReqType {
}
export interface FriendRequest {
isBuddy?: boolean;
isInitiator?: boolean;
isDecide: boolean;
friendUid: string;

View File

@@ -65,7 +65,7 @@ export interface NodeIKernelBuddyService {
delBuddyReq(uid: number): void;
clearBuddyReqUnreadCnt(): void;
clearBuddyReqUnreadCnt(): Promise<GeneralCallResult>;
reqToAddFriends(uid: number, msg: string): void;

View File

@@ -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(