import { OneBotAction } from '@/onebot/action/OneBotAction'; import { ActionName } from '@/onebot/action/router'; import { z } from 'zod'; const SchemaData = z.object({ status: z.union([z.number(), z.string()]), ext_status: z.union([z.number(), z.string()]), battery_status: z.union([z.number(), z.string()]), }); type Payload = z.infer; export class SetOnlineStatus extends OneBotAction { override actionName = ActionName.SetOnlineStatus; override payloadSchema = SchemaData; async _handle(payload: Payload) { const ret = await this.core.apis.UserApi.setSelfOnlineStatus( +payload.status, +payload.ext_status, +payload.battery_status, ); if (ret.result !== 0) { throw new Error('设置在线状态失败'); } return null; } }