diff --git a/src/core/packet/clientSession.ts b/src/core/packet/clientSession.ts index 3faea314..f0932cfb 100644 --- a/src/core/packet/clientSession.ts +++ b/src/core/packet/clientSession.ts @@ -23,7 +23,9 @@ export class PacketClientSession { get operation() { return this.context.operation; } - + get client() { + return this.context.client; + } // TODO: global message element adapter (? get msgConverter() { return this.context.msgConverter; diff --git a/src/onebot/action/extends/SendPacket.ts b/src/onebot/action/extends/SendPacket.ts new file mode 100644 index 00000000..4925bf34 --- /dev/null +++ b/src/onebot/action/extends/SendPacket.ts @@ -0,0 +1,21 @@ +import { GetPacketStatusDepends } from '@/onebot/action/packet/GetPacketStatus'; +import { ActionName } from '@/onebot/action/router'; +import { Static, Type } from '@sinclair/typebox'; + +const SchemaData = Type.Object({ + cmd: Type.String(), + data: Type.String(), + rsp: Type.Union([Type.String(), Type.Boolean()], { default: true }), +}); + +type Payload = Static; + +export class SendPacket extends GetPacketStatusDepends { + payloadSchema = SchemaData; + actionName = ActionName.SendPacket; + async _handle(payload: Payload) { + const rsp = typeof payload.rsp === 'boolean' ? payload.rsp : payload.rsp === 'true'; + const data = await this.core.apis.PacketApi.pkt.client.sendOidbPacket({ cmd: payload.cmd, data: payload.data as any }, rsp); + return typeof data === 'object' ? data.toString('hex') : undefined; + } +} diff --git a/src/onebot/action/index.ts b/src/onebot/action/index.ts index 1ce94005..77f07eed 100644 --- a/src/onebot/action/index.ts +++ b/src/onebot/action/index.ts @@ -103,6 +103,7 @@ import { GetAiCharacters } from "@/onebot/action/extends/GetAiCharacters"; import { GetGuildList } from './guild/GetGuildList'; import { GetGuildProfile } from './guild/GetGuildProfile'; import { GetClientkey } from './extends/GetClientkey'; +import { SendPacket } from './extends/SendPacket'; export function createActionMap(obContext: NapCatOneBot11Adapter, core: NapCatCore) { @@ -218,6 +219,7 @@ export function createActionMap(obContext: NapCatOneBot11Adapter, core: NapCatCo new GetAiRecord(obContext, core), new SendGroupAiRecord(obContext, core), new GetAiCharacters(obContext, core), + new SendPacket(obContext, core), ]; type HandlerUnion = typeof actionHandlers[number]; diff --git a/src/onebot/action/router.ts b/src/onebot/action/router.ts index 1bbc0d62..990e6ab2 100644 --- a/src/onebot/action/router.ts +++ b/src/onebot/action/router.ts @@ -137,7 +137,7 @@ export const ActionName = { SetGroupSign: "set_group_sign", SendGroupSign: "send_group_sign", - + SendPacket: "send_packet", GetMiniAppArk: "get_mini_app_ark", // UploadForwardMsg : "upload_forward_msg", GetAiRecord: "get_ai_record",