From 016482c9e5b49ffe3b1285a697933a90d7da960c Mon Sep 17 00:00:00 2001 From: linyuchen Date: Sat, 30 Mar 2024 13:48:06 +0800 Subject: [PATCH] fix: friend request flag invalid --- src/main/main.ts | 7 ++++--- src/ntqqapi/api/friend.ts | 8 ++++---- src/onebot11/action/user/SetFriendAddRequest.ts | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/main/main.ts b/src/main/main.ts index e54c24e..2cb558e 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -354,8 +354,9 @@ function onLoad() { registerReceiveHook(ReceiveCmdS.FRIEND_REQUEST, async (payload) => { for (const req of payload.data.buddyReqs) { - if (req.isUnread && !friendRequests[req.sourceId] && (parseInt(req.reqTime) > startTime / 1000)) { - friendRequests[req.sourceId] = req; + let flag = req.friendUid + req.reqTime; + if (req.isUnread && (parseInt(req.reqTime) > startTime / 1000)) { + friendRequests[flag] = req; log("有新的好友请求", req); let friendRequestEvent = new OB11FriendRequestEvent(); try { @@ -364,7 +365,7 @@ function onLoad() { } catch (e) { log("获取加好友者QQ号失败", e); } - friendRequestEvent.flag = req.sourceId.toString(); + friendRequestEvent.flag = flag; friendRequestEvent.comment = req.extWords; postOB11Event(friendRequestEvent); } diff --git a/src/ntqqapi/api/friend.ts b/src/ntqqapi/api/friend.ts index 36bfc33..3be7b9d 100644 --- a/src/ntqqapi/api/friend.ts +++ b/src/ntqqapi/api/friend.ts @@ -37,10 +37,10 @@ export class NTQQFriendApi{ }, null] }) } - static async handleFriendRequest(sourceId: number, accept: boolean,) { - const request: FriendRequest = friendRequests[sourceId] + static async handleFriendRequest(flag: string, accept: boolean,) { + const request: FriendRequest = friendRequests[flag] if (!request) { - throw `sourceId ${sourceId}, 对应的好友请求不存在` + throw `flat: ${flag}, 对应的好友请求不存在` } const result = await callNTQQApi({ methodName: NTQQApiMethod.HANDLE_FRIEND_REQUEST, @@ -54,7 +54,7 @@ export class NTQQFriendApi{ } ] }) - delete friendRequests[sourceId]; + delete friendRequests[flag]; return result; } diff --git a/src/onebot11/action/user/SetFriendAddRequest.ts b/src/onebot11/action/user/SetFriendAddRequest.ts index 5d5ffa0..383ffce 100644 --- a/src/onebot11/action/user/SetFriendAddRequest.ts +++ b/src/onebot11/action/user/SetFriendAddRequest.ts @@ -13,7 +13,7 @@ export default class SetFriendAddRequest extends BaseAction { protected async _handle(payload: Payload): Promise { const approve = payload.approve.toString() === "true"; - await NTQQFriendApi.handleFriendRequest(parseInt(payload.flag), approve) + await NTQQFriendApi.handleFriendRequest(payload.flag, approve) return null; } } \ No newline at end of file