chore: Onebot context

This commit is contained in:
手瓜一十雪
2024-08-12 13:04:24 +08:00
parent 0ef6d8eee4
commit 8332d6ab41
6 changed files with 48 additions and 37 deletions

View File

@@ -3,6 +3,7 @@ import { MessageUnique } from '@/common/utils/MessageUnique';
import { OB11MessageDataType, OB11MessageNode } from '@/onebot/types';
import createSendElements from './create-send-elements';
import { normalize, sendMsg } from '../SendMsg/index';
import { NapCatOneBot11Adapter } from '@/onebot';
async function cloneMsg(coreContext: NapCatCore, msg: RawMessage): Promise<RawMessage | undefined> {
const selfPeer = {
@@ -30,7 +31,7 @@ async function cloneMsg(coreContext: NapCatCore, msg: RawMessage): Promise<RawMe
}
}
export async function handleForwardNode(coreContext: NapCatCore, destPeer: Peer, messageNodes: OB11MessageNode[]): Promise<RawMessage | null> {
export async function handleForwardNode(coreContext: NapCatCore, obContext: NapCatOneBot11Adapter, destPeer: Peer, messageNodes: OB11MessageNode[]): Promise<RawMessage | null> {
const NTQQMsgApi = coreContext.apis.MsgApi;
const selfPeer = {
chatType: ChatType.friend,
@@ -59,7 +60,7 @@ export async function handleForwardNode(coreContext: NapCatCore, destPeer: Peer,
logger.logError('子消息中包含非node消息 跳过不合法部分');
continue;
}
const nodeMsg = await handleForwardNode(coreContext, selfPeer, OB11Data.filter(e => e.type === OB11MessageDataType.node));
const nodeMsg = await handleForwardNode(coreContext, obContext, selfPeer, OB11Data.filter(e => e.type === OB11MessageDataType.node));
if (nodeMsg) {
nodeMsgIds.push(nodeMsg.msgId);
MessageUnique.createMsg(selfPeer, nodeMsg.msgId);
@@ -67,7 +68,7 @@ export async function handleForwardNode(coreContext: NapCatCore, destPeer: Peer,
//完成子卡片生成跳过后续
continue;
}
const { sendElements } = await createSendElements(coreContext, OB11Data, destPeer);
const { sendElements } = await createSendElements(coreContext, obContext, OB11Data, destPeer);
//拆分消息
const MixElement = sendElements.filter(element => element.elementType !== ElementType.FILE && element.elementType !== ElementType.VIDEO);
const SingleElement = sendElements.filter(element => element.elementType === ElementType.FILE || element.elementType === ElementType.VIDEO).map(e => [e]);