diff --git a/src/core/apis/group.ts b/src/core/apis/group.ts index 6476add2..2952c30b 100644 --- a/src/core/apis/group.ts +++ b/src/core/apis/group.ts @@ -128,7 +128,7 @@ export class NTQQGroupApi { extInfo.extInfo.inviteRobotMemberExamine = robotMemberExamine; groupExtFilter.inviteRobotMemberExamine = 1; } - this.context.session.getGroupService().modifyGroupExtInfoV2(extInfo, groupExtFilter); + return this.context.session.getGroupService().modifyGroupExtInfoV2(extInfo, groupExtFilter); } async setGroupAddOption(groupCode: string, option: { @@ -147,7 +147,7 @@ export class NTQQGroupApi { param.modifyInfo.groupAnswer = option.addOption == 4 ? option.groupAnswer || '' : ''; } param.modifyInfo.addOption = option.addOption; - this.context.session.getGroupService().modifyGroupDetailInfoV2(param, 0); + return this.context.session.getGroupService().modifyGroupDetailInfoV2(param, 0); } async setGroupSearch(groupCode: string, option: { @@ -163,7 +163,7 @@ export class NTQQGroupApi { param.filter.noFingerOpenFlag = 1; param.modifyInfo.noFingerOpenFlag = option.noFingerOpenFlag; } - this.context.session.getGroupService().modifyGroupDetailInfoV2(param, 0); + return this.context.session.getGroupService().modifyGroupDetailInfoV2(param, 0); } async getGroups(forced: boolean = false) { diff --git a/src/onebot/action/extends/SetGroupAddOption.ts b/src/onebot/action/extends/SetGroupAddOption.ts new file mode 100644 index 00000000..7d270351 --- /dev/null +++ b/src/onebot/action/extends/SetGroupAddOption.ts @@ -0,0 +1,28 @@ +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(), + add_type: Type.Number(), + group_question: Type.Optional(Type.String()), + group_answer: Type.Optional(Type.String()), +}); + +type Payload = Static; + +export default class SetGroupAddOption extends OneBotAction { + override actionName = ActionName.SetGroupAddOption; + override payloadSchema = SchemaData; + async _handle(payload: Payload): Promise { + let ret = await this.core.apis.GroupApi.setGroupAddOption(payload.group_id, { + addOption: payload.add_type, + groupQuestion: payload.group_question, + groupAnswer: payload.group_answer, + }); + if (ret.result != 0) { + throw new Error(`设置群添加选项失败, ${ret.result}:${ret.errMsg}`); + } + return null; + } +} diff --git a/src/onebot/action/extends/SetGroupRobotAddOption.ts b/src/onebot/action/extends/SetGroupRobotAddOption.ts new file mode 100644 index 00000000..c91abcc6 --- /dev/null +++ b/src/onebot/action/extends/SetGroupRobotAddOption.ts @@ -0,0 +1,27 @@ +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(), + robot_member_switch: Type.Optional(Type.Number()), + robot_member_examine: Type.Optional(Type.Number()), +}); + +type Payload = Static; + +export default class SetGroupRobotAddOption extends OneBotAction { + override actionName = ActionName.SetGroupRobotAddOption; + override payloadSchema = SchemaData; + async _handle(payload: Payload): Promise { + let ret = await this.core.apis.GroupApi.setGroupRobotAddOption( + payload.group_id, + payload.robot_member_switch, + payload.robot_member_examine, + ); + if (ret.result != 0) { + throw new Error(`设置群机器人添加选项失败, ${ret.result}:${ret.errMsg}`); + } + return null; + } +} diff --git a/src/onebot/action/extends/SetGroupSearch.ts b/src/onebot/action/extends/SetGroupSearch.ts new file mode 100644 index 00000000..e5b20c7b --- /dev/null +++ b/src/onebot/action/extends/SetGroupSearch.ts @@ -0,0 +1,26 @@ +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(), + no_code_finger_open: Type.Optional(Type.Number()), + no_finger_open: Type.Optional(Type.Number()), +}); + +type Payload = Static; + +export default class SetGroupSearch extends OneBotAction { + override actionName = ActionName.SetGroupSearch; + override payloadSchema = SchemaData; + async _handle(payload: Payload): Promise { + let ret = await this.core.apis.GroupApi.setGroupSearch(payload.group_id, { + noCodeFingerOpenFlag: payload.no_code_finger_open, + noFingerOpenFlag: payload.no_finger_open, + }); + 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 34294063..f6088e6f 100644 --- a/src/onebot/action/index.ts +++ b/src/onebot/action/index.ts @@ -116,10 +116,16 @@ import { CleanCache } from './system/CleanCache'; import SetFriendRemark from './user/SetFriendRemark'; import { SetDoubtFriendsAddRequest } from './new/SetDoubtFriendsAddRequest'; import { GetDoubtFriendsAddRequest } from './new/GetDoubtFriendsAddRequest'; +import SetGroupAddOption from './extends/setGroupAddOption'; +import SetGroupRobotAddOption from './extends/setGroupRobotAddOption'; +import SetGroupSearch from './extends/SetGroupSearch'; export function createActionMap(obContext: NapCatOneBot11Adapter, core: NapCatCore) { const actionHandlers = [ + new SetGroupAddOption(obContext, core), + new SetGroupRobotAddOption(obContext, core), + new SetGroupSearch(obContext, core), new SetDoubtFriendsAddRequest(obContext, core), new GetDoubtFriendsAddRequest(obContext, core), new SetFriendRemark(obContext, core), diff --git a/src/onebot/action/router.ts b/src/onebot/action/router.ts index 6abfe642..9e4f1b21 100644 --- a/src/onebot/action/router.ts +++ b/src/onebot/action/router.ts @@ -10,6 +10,9 @@ export interface InvalidCheckResult { } export const ActionName = { + SetGroupRobotAddOption: 'set_group_robot_add_option', + SetGroupAddOption: 'set_group_add_option', + SetGroupSearch: 'set_group_search', // new extends 完全差异OneBot类别 GetDoubtFriendsAddRequest: 'get_doubt_friends_add_request', SetDoubtFriendsAddRequest: 'set_doubt_friends_add_request', @@ -59,7 +62,7 @@ export const ActionName = { GetStatus: 'get_status', GetVersionInfo: 'get_version_info', // Reboot : 'set_restart', - CleanCache : 'clean_cache', + CleanCache: 'clean_cache', Exit: 'bot_exit', // go-cqhttp SetQQProfile: 'set_qq_profile',