diff --git a/src/onebot/action/extends/SetGroupKickMembers.ts b/src/onebot/action/extends/SetGroupKickMembers.ts new file mode 100644 index 00000000..359a8cda --- /dev/null +++ b/src/onebot/action/extends/SetGroupKickMembers.ts @@ -0,0 +1,23 @@ +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(), + user_id: Type.Array(Type.String()), + reject_add_request: Type.Optional(Type.Union([Type.Boolean(), Type.String()])), +}); + +type Payload = Static; + +export default class SetGroupKickMembers extends OneBotAction { + override actionName = ActionName.SetGroupKickMembers; + override payloadSchema = SchemaData; + + async _handle(payload: Payload): Promise { + const rejectReq = payload.reject_add_request?.toString() == 'true'; + const uids: string[] = await Promise.all(payload.user_id.map(async uin => await this.core.apis.UserApi.getUidByUinV2(uin))); + await this.core.apis.GroupApi.kickMember(payload.group_id.toString(), uids.filter(uid => !!uid), rejectReq); + return null; + } +} \ No newline at end of file diff --git a/src/onebot/action/index.ts b/src/onebot/action/index.ts index e8dce290..ebfe1d2a 100644 --- a/src/onebot/action/index.ts +++ b/src/onebot/action/index.ts @@ -119,10 +119,12 @@ import { GetDoubtFriendsAddRequest } from './new/GetDoubtFriendsAddRequest'; import SetGroupAddOption from './extends/SetGroupAddOption'; import SetGroupSearch from './extends/SetGroupSearch'; import SetGroupRobotAddOption from './extends/SetGroupRobotAddOption'; +import SetGroupKickMembers from './extends/SetGroupKickMembers'; export function createActionMap(obContext: NapCatOneBot11Adapter, core: NapCatCore) { const actionHandlers = [ + new SetGroupKickMembers(obContext, core), new SetGroupAddOption(obContext, core), new SetGroupRobotAddOption(obContext, core), new SetGroupSearch(obContext, core), diff --git a/src/onebot/action/router.ts b/src/onebot/action/router.ts index 9e4f1b21..13b16dd7 100644 --- a/src/onebot/action/router.ts +++ b/src/onebot/action/router.ts @@ -10,6 +10,7 @@ export interface InvalidCheckResult { } export const ActionName = { + SetGroupKickMembers: 'set_group_kick_members', SetGroupRobotAddOption: 'set_group_robot_add_option', SetGroupAddOption: 'set_group_add_option', SetGroupSearch: 'set_group_search',