feat: SetOnlineStatus

This commit is contained in:
idranme
2024-09-04 01:23:25 +08:00
parent 273d4133eb
commit 502be69bc5
5 changed files with 39 additions and 1 deletions

View File

@@ -334,4 +334,14 @@ export class NTQQUserApi extends Service {
}
return selfInfo.nick
}
async setSelfStatus(status: number, extStatus: number, batteryStatus: number) {
return await invoke('nodeIKernelMsgService/setStatus', [{
statusReq: {
status,
extStatus,
batteryStatus,
}
}, null])
}
}

View File

@@ -26,7 +26,7 @@ export const ReceiveCmdS = {
CACHE_SCAN_FINISH: 'nodeIKernelStorageCleanListener/onFinishScan',
MEDIA_UPLOAD_COMPLETE: 'nodeIKernelMsgListener/onRichMediaUploadComplete',
SKEY_UPDATE: 'onSkeyUpdate',
}
} as const
export type ReceiveCmd = string

View File

@@ -60,6 +60,7 @@ import { CreateGroupFileFolder } from './go-cqhttp/CreateGroupFileFolder'
import { DelGroupFolder } from './go-cqhttp/DelGroupFolder'
import { GetGroupAtAllRemain } from './go-cqhttp/GetGroupAtAllRemain'
import { GetGroupRootFiles } from './go-cqhttp/GetGroupRootFiles'
import { SetOnlineStatus } from './llonebot/SetOnlineStatus'
export function initActionMap(adapter: Adapter) {
const actionHandlers = [
@@ -71,6 +72,7 @@ export function initActionMap(adapter: Adapter) {
new SetQQAvatar(adapter),
new GetFriendWithCategory(adapter),
new GetEvent(adapter),
new SetOnlineStatus(adapter),
// onebot11
new SendLike(adapter),
new GetMsg(adapter),

View File

@@ -0,0 +1,25 @@
import BaseAction from '../BaseAction'
import { ActionName } from '../types'
interface Payload {
status: number | string
ext_status: number | string
battery_status: number | string
}
export class SetOnlineStatus extends BaseAction<Payload, null> {
actionName = ActionName.SetOnlineStatus
async _handle(payload: Payload) {
const ret = await this.ctx.ntUserApi.setSelfStatus(
Number(payload.status),
Number(payload.ext_status),
Number(payload.battery_status),
)
if (ret.result !== 0) {
this.ctx.logger.error(ret)
throw new Error('设置在线状态失败')
}
return null
}
}

View File

@@ -23,6 +23,7 @@ export enum ActionName {
GetFile = 'get_file',
GetFriendsWithCategory = 'get_friends_with_category',
GetEvent = 'get_event',
SetOnlineStatus = 'set_online_status',
// onebot 11
SendLike = 'send_like',
GetLoginInfo = 'get_login_info',