From 3a1d1f2e59cee0d8e9f48700562f6e4a6c71f2a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=89=8B=E7=93=9C=E4=B8=80=E5=8D=81=E9=9B=AA?= Date: Sun, 18 May 2025 19:21:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E9=9A=94=E7=A6=BBcontext=E4=BC=A0?= =?UTF-8?q?=E9=80=92=20=E9=81=BF=E5=85=8D=E9=AB=98=E5=B9=B6=E5=8F=91?= =?UTF-8?q?=E5=B9=B2=E6=89=B0=E4=B8=80=E4=B8=AA=E5=AE=9E=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/onebot/action/go-cqhttp/SendForwardMsg.ts | 8 +++++++- src/onebot/action/group/SendGroupMsg.ts | 6 ++++-- src/onebot/action/msg/SendMsg.ts | 13 ++++++------- src/onebot/action/msg/SendPrivateMsg.ts | 6 ++++-- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/onebot/action/go-cqhttp/SendForwardMsg.ts b/src/onebot/action/go-cqhttp/SendForwardMsg.ts index 304d6fe3..c96392ec 100644 --- a/src/onebot/action/go-cqhttp/SendForwardMsg.ts +++ b/src/onebot/action/go-cqhttp/SendForwardMsg.ts @@ -1,4 +1,4 @@ -import { normalize, SendMsgBase } from '@/onebot/action/msg/SendMsg'; +import { ContextMode, normalize, ReturnDataType, SendMsgBase } from '@/onebot/action/msg/SendMsg'; import { OB11PostSendMsg } from '@/onebot/types'; import { ActionName } from '@/onebot/action/router'; @@ -19,8 +19,14 @@ export class GoCQHTTPSendForwardMsg extends GoCQHTTPSendForwardMsgBase { } export class GoCQHTTPSendPrivateForwardMsg extends GoCQHTTPSendForwardMsgBase { override actionName = ActionName.GoCQHTTP_SendPrivateForwardMsg; + override async _handle(payload: OB11PostSendMsg): Promise { + return this.base_handle(payload, ContextMode.Private); + } } export class GoCQHTTPSendGroupForwardMsg extends GoCQHTTPSendForwardMsgBase { override actionName = ActionName.GoCQHTTP_SendGroupForwardMsg; + override async _handle(payload: OB11PostSendMsg): Promise { + return this.base_handle(payload, ContextMode.Group); + } } diff --git a/src/onebot/action/group/SendGroupMsg.ts b/src/onebot/action/group/SendGroupMsg.ts index e401abb5..31604c21 100644 --- a/src/onebot/action/group/SendGroupMsg.ts +++ b/src/onebot/action/group/SendGroupMsg.ts @@ -1,17 +1,19 @@ -import { ContextMode, SendMsgBase } from '@/onebot/action/msg/SendMsg'; +import { ContextMode, ReturnDataType, SendMsgBase } from '@/onebot/action/msg/SendMsg'; import { ActionName, BaseCheckResult } from '@/onebot/action/router'; import { OB11PostSendMsg } from '@/onebot/types'; // 未检测参数 class SendGroupMsg extends SendMsgBase { override actionName = ActionName.SendGroupMsg; - override contextMode: ContextMode = ContextMode.Group; protected override async check(payload: OB11PostSendMsg): Promise { delete payload.user_id; payload.message_type = 'group'; return super.check(payload); } + override async _handle(payload: OB11PostSendMsg): Promise { + return this.base_handle(payload, ContextMode.Group); + } } export default SendGroupMsg; diff --git a/src/onebot/action/msg/SendMsg.ts b/src/onebot/action/msg/SendMsg.ts index dcf96fac..50734e99 100644 --- a/src/onebot/action/msg/SendMsg.ts +++ b/src/onebot/action/msg/SendMsg.ts @@ -104,8 +104,6 @@ function getSpecialMsgNum(payload: OB11PostSendMsg, msgType: OB11MessageDataType } export class SendMsgBase extends OneBotAction { - contextMode = ContextMode.Normal; - protected override async check(payload: OB11PostSendMsg): Promise { const messages = normalize(payload.message); const nodeElementLength = getSpecialMsgNum(payload, OB11MessageDataType.node); @@ -117,12 +115,13 @@ export class SendMsgBase extends OneBotAction { } return { valid: true }; } - async _handle(payload: OB11PostSendMsg): Promise { - this.contextMode = ContextMode.Normal; - if (payload.message_type === 'group') this.contextMode = ContextMode.Group; - if (payload.message_type === 'private') this.contextMode = ContextMode.Private; - const peer = await createContext(this.core, payload, this.contextMode); + return this.base_handle(payload); + } + async base_handle(payload: OB11PostSendMsg, contextMode: ContextMode = ContextMode.Normal): Promise { + if (payload.message_type === 'group') contextMode = ContextMode.Group; + if (payload.message_type === 'private') contextMode = ContextMode.Private; + const peer = await createContext(this.core, payload, contextMode); const messages = normalize( payload.message, diff --git a/src/onebot/action/msg/SendPrivateMsg.ts b/src/onebot/action/msg/SendPrivateMsg.ts index cb268f0d..64b05ca0 100644 --- a/src/onebot/action/msg/SendPrivateMsg.ts +++ b/src/onebot/action/msg/SendPrivateMsg.ts @@ -1,16 +1,18 @@ -import { ContextMode, SendMsgBase } from './SendMsg'; +import { ContextMode, ReturnDataType, SendMsgBase } from './SendMsg'; import { ActionName, BaseCheckResult } from '@/onebot/action/router'; import { OB11PostSendMsg } from '@/onebot/types'; // 未检测参数 class SendPrivateMsg extends SendMsgBase { override actionName = ActionName.SendPrivateMsg; - override contextMode: ContextMode = ContextMode.Private; protected override async check(payload: OB11PostSendMsg): Promise { payload.message_type = 'private'; return super.check(payload); } + override async _handle(payload: OB11PostSendMsg): Promise { + return this.base_handle(payload, ContextMode.Private); + } } export default SendPrivateMsg;