From 6b8b14aba222f1f92e687069bbc2fa5f7ff1d161 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: Wed, 23 Apr 2025 11:47:58 +0800 Subject: [PATCH] fix: #963 --- src/onebot/action/index.ts | 2 ++ src/onebot/action/router.ts | 1 + src/onebot/action/user/SetFriendRemark.ts | 25 +++++++++++++++++++++++ 3 files changed, 28 insertions(+) create mode 100644 src/onebot/action/user/SetFriendRemark.ts diff --git a/src/onebot/action/index.ts b/src/onebot/action/index.ts index cbc14a2f..bd12979d 100644 --- a/src/onebot/action/index.ts +++ b/src/onebot/action/index.ts @@ -115,10 +115,12 @@ import { RenameGroupFile } from './extends/RenameGroupFile'; import { GetRkeyServer } from './packet/GetRkeyServer'; import { GetRkeyEx } from './packet/GetRkeyEx'; import { CleanCache } from './system/CleanCache'; +import SetFriendRemark from './user/SetFriendRemark'; export function createActionMap(obContext: NapCatOneBot11Adapter, core: NapCatCore) { const actionHandlers = [ + new SetFriendRemark(obContext, core), new GetRkeyEx(obContext, core), new GetRkeyServer(obContext, core), new SetGroupRemark(obContext, core), diff --git a/src/onebot/action/router.ts b/src/onebot/action/router.ts index 711edef6..fe3acd21 100644 --- a/src/onebot/action/router.ts +++ b/src/onebot/action/router.ts @@ -35,6 +35,7 @@ export const ActionName = { SetGroupLeave: 'set_group_leave', SetSpecialTitle: 'set_group_special_title', SetFriendAddRequest: 'set_friend_add_request', + SetFriendRemark: 'set_friend_remark', SetGroupAddRequest: 'set_group_add_request', GetLoginInfo: 'get_login_info', GoCQHTTP_GetStrangerInfo: 'get_stranger_info', diff --git a/src/onebot/action/user/SetFriendRemark.ts b/src/onebot/action/user/SetFriendRemark.ts new file mode 100644 index 00000000..5cc3559c --- /dev/null +++ b/src/onebot/action/user/SetFriendRemark.ts @@ -0,0 +1,25 @@ +import { OneBotAction } from '@/onebot/action/OneBotAction'; +import { ActionName } from '@/onebot/action/router'; +import { Static, Type } from '@sinclair/typebox'; + +const SchemaData = Type.Object({ + user_id: Type.String(), + remark: Type.String() +}); + +type Payload = Static; + +export default class SetFriendRemark extends OneBotAction { + override actionName = ActionName.SetFriendRemark; + override payloadSchema = SchemaData; + + async _handle(payload: Payload): Promise { + let friendUid = await this.core.apis.UserApi.getUidByUinV2(payload.user_id); + let is_friend = await this.core.apis.FriendApi.isBuddy(friendUid); + if (!is_friend) { + throw new Error(`用户 ${payload.user_id} 不是好友`); + } + await this.core.apis.FriendApi.setBuddyRemark(friendUid, payload.remark); + return null; + } +}