From 10e281ed354c54a9207c3ae50ef68633dc9480dd 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: Mon, 14 Oct 2024 22:08:00 +0800 Subject: [PATCH] fix #428 --- src/core/apis/friend.ts | 4 +++- src/core/services/NodeIKernelBuddyService.ts | 2 +- src/onebot/action/user/SetFriendAddRequest.ts | 8 ++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/core/apis/friend.ts b/src/core/apis/friend.ts index 66733cbc..4c0d387e 100644 --- a/src/core/apis/friend.ts +++ b/src/core/apis/friend.ts @@ -10,7 +10,9 @@ export class NTQQFriendApi { this.context = context; this.core = core; } - + async setBuddyRemark(uid: string, remark: string) { + return this.context.session.getBuddyService().setBuddyRemark(uid, remark); + } async getBuddyV2SimpleInfoMap(refresh = false) { const buddyService = this.context.session.getBuddyService(); const buddyListV2 = refresh ? await buddyService.getBuddyListV2('0', BuddyListReqType.KNOMAL) : await buddyService.getBuddyListV2('0', BuddyListReqType.KNOMAL); diff --git a/src/core/services/NodeIKernelBuddyService.ts b/src/core/services/NodeIKernelBuddyService.ts index ac96b5a3..882cfcb2 100644 --- a/src/core/services/NodeIKernelBuddyService.ts +++ b/src/core/services/NodeIKernelBuddyService.ts @@ -36,7 +36,7 @@ export interface NodeIKernelBuddyService { getBuddyRemark(uid: number): string; - setBuddyRemark(uid: number, remark: string): void; + setBuddyRemark(uid: string, remark: string): void; getAvatarUrl(uid: number): string; diff --git a/src/onebot/action/user/SetFriendAddRequest.ts b/src/onebot/action/user/SetFriendAddRequest.ts index 02eb0661..a06f0fb2 100644 --- a/src/onebot/action/user/SetFriendAddRequest.ts +++ b/src/onebot/action/user/SetFriendAddRequest.ts @@ -21,6 +21,14 @@ export default class SetFriendAddRequest extends BaseAction { async _handle(payload: Payload): Promise { const approve = payload.approve?.toString() !== 'false'; await this.core.apis.FriendApi.handleFriendRequest(payload.flag, approve); + if (payload.remark) { + const data = payload.flag.split('|'); + if (data.length < 2) { + throw new Error('Invalid flag'); + } + const friendUid = data[0]; + await this.core.apis.FriendApi.setBuddyRemark(friendUid, payload.remark); + } return null; } }