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;