import { OneBotAction } from '@/napcat-onebot/action/OneBotAction'; import { ActionName } from '@/napcat-onebot/action/router'; import { Static, Type } from '@sinclair/typebox'; const PayloadSchema = Type.Object({ face_id: Type.Union([Type.Number(), Type.String()], { description: '图标ID' }), // 参考 face_config.json 的 QSid face_type: Type.Union([Type.Number(), Type.String()], { default: '1', description: '图标类型' }), wording: Type.String({ default: ' ', description: '状态文字内容' }), }); type PayloadType = Static; const ReturnSchema = Type.String({ description: '错误信息(如果有)' }); type ReturnType = Static; export class SetDiyOnlineStatus extends OneBotAction { override actionName = ActionName.SetDiyOnlineStatus; override payloadSchema = PayloadSchema; override returnSchema = ReturnSchema; override actionSummary = '设置自定义在线状态'; override actionDescription = '设置自定义在线状态'; override actionTags = ['用户扩展']; override payloadExample = { face_id: '123', face_type: '1', wording: '自定义状态' }; override returnExample = ''; async _handle (payload: PayloadType) { const ret = await this.core.apis.UserApi.setDiySelfOnlineStatus( payload.face_id.toString(), payload.wording, payload.face_type.toString() ); if (ret.result !== 0) { throw new Error('设置在线状态失败'); } return ret.errMsg; } }