Skip to content

Commit

Permalink
fix: 好友申请重复推送
Browse files Browse the repository at this point in the history
  • Loading branch information
MliKiowa committed Aug 24, 2024
1 parent 0e3a419 commit 984b5d6
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 5 deletions.
4 changes: 3 additions & 1 deletion src/core/apis/friend.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions src/core/entities/notify.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ export enum BuddyReqType {
}

export interface FriendRequest {
isBuddy?: boolean;
isInitiator?: boolean;
isDecide: boolean;
friendUid: string;
Expand Down
2 changes: 1 addition & 1 deletion src/core/services/NodeIKernelBuddyService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ export interface NodeIKernelBuddyService {

delBuddyReq(uid: number): void;

clearBuddyReqUnreadCnt(): void;
clearBuddyReqUnreadCnt(): Promise<GeneralCallResult>;

reqToAddFriends(uid: number, msg: string): void;

Expand Down
14 changes: 11 additions & 3 deletions src/onebot/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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;
}
Expand All @@ -299,7 +307,7 @@ export class NapCatOneBot11Adapter {
} catch (e) {
this.context.logger.logDebug('获取加好友者QQ号失败', e);
}
});
}
};

this.context.session.getBuddyService().addKernelBuddyListener(
Expand Down

0 comments on commit 984b5d6

Please sign in to comment.