diff --git a/src/core/apis/group.ts b/src/core/apis/group.ts index 31a3b4c2..80555d98 100644 --- a/src/core/apis/group.ts +++ b/src/core/apis/group.ts @@ -27,6 +27,9 @@ export class NTQQGroupApi { this.core = core; } + async setGroupRemark(groupCode: string, remark: string) { + return this.context.session.getGroupService().modifyGroupRemark(groupCode, remark); + } async fetchGroupDetail(groupCode: string) { const [, detailInfo] = await this.core.eventWrapper.callNormalEventV2( 'NodeIKernelGroupService/getGroupDetailInfo', diff --git a/src/core/services/NodeIKernelGroupService.ts b/src/core/services/NodeIKernelGroupService.ts index b991c83b..babcad73 100644 --- a/src/core/services/NodeIKernelGroupService.ts +++ b/src/core/services/NodeIKernelGroupService.ts @@ -165,7 +165,7 @@ export interface NodeIKernelGroupService { modifyGroupName(groupCode: string, groupName: string, isNormalMember: boolean): Promise; - modifyGroupRemark(groupCode: string, remark: string): void; + modifyGroupRemark(groupCode: string, remark: string): Promise; modifyGroupDetailInfo(groupCode: string, arg: unknown): void; diff --git a/src/onebot/action/extends/SetGroupRemark.ts b/src/onebot/action/extends/SetGroupRemark.ts new file mode 100644 index 00000000..a8dbf5a9 --- /dev/null +++ b/src/onebot/action/extends/SetGroupRemark.ts @@ -0,0 +1,22 @@ +import { OneBotAction } from '@/onebot/action/OneBotAction'; +import { ActionName } from '@/onebot/action/router'; +import { Static, Type } from '@sinclair/typebox'; + +const SchemaData = Type.Object({ + group_id: Type.String(), + remark: Type.String(), +}); + +type Payload = Static; + +export default class SetGroupRemark extends OneBotAction { + override actionName = ActionName.SetGroupRemark; + override payloadSchema = SchemaData; + async _handle(payload: Payload): Promise { + let ret = await this.core.apis.GroupApi.setGroupRemark(payload.group_id, payload.remark); + if (ret.result != 0) { + throw new Error(`设置群备注失败, ${ret.result}:${ret.errMsg}`); + } + return null; + } +} diff --git a/src/onebot/action/index.ts b/src/onebot/action/index.ts index 1d49b39c..fd2f74f9 100644 --- a/src/onebot/action/index.ts +++ b/src/onebot/action/index.ts @@ -108,10 +108,12 @@ import { BotExit } from './extends/BotExit'; import { ClickInlineKeyboardButton } from './extends/ClickInlineKeyboardButton'; import { GetPrivateFileUrl } from './file/GetPrivateFileUrl'; import { GetUnidirectionalFriendList } from './extends/GetUnidirectionalFriendList'; +import SetGroupRemark from './extends/SetGroupRemark'; export function createActionMap(obContext: NapCatOneBot11Adapter, core: NapCatCore) { const actionHandlers = [ + new SetGroupRemark(obContext, core), new GetGroupInfoEx(obContext, core), new FetchEmojiLike(obContext, core), new GetFile(obContext, core), @@ -227,8 +229,8 @@ export function createActionMap(obContext: NapCatOneBot11Adapter, core: NapCatCo new GetGroupSystemMsg(obContext, core), new BotExit(obContext, core), new ClickInlineKeyboardButton(obContext, core), - new GetPrivateFileUrl(obContext,core), - new GetUnidirectionalFriendList(obContext,core), + new GetPrivateFileUrl(obContext, core), + new GetUnidirectionalFriendList(obContext, core), ]; type HandlerUnion = typeof actionHandlers[number]; diff --git a/src/onebot/action/router.ts b/src/onebot/action/router.ts index 6bed2aa0..51b3892e 100644 --- a/src/onebot/action/router.ts +++ b/src/onebot/action/router.ts @@ -10,6 +10,7 @@ export interface InvalidCheckResult { } export const ActionName = { + SetGroupRemark: 'set_group_remark', NapCat_GetPrivateFileUrl: 'get_private_file_url', ClickInlineKeyboardButton: 'click_inline_keyboard_button', GetUnidirectionalFriendList: 'get_unidirectional_friend_list',