From 7cb85ed73c88416e4bddb1722ecec5da732a3fa9 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: Tue, 6 Aug 2024 16:43:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=86=8D=E6=AC=A1=E4=BC=98=E5=8C=96node?= =?UTF-8?q?id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/core/src/apis/msg.ts | 3 +++ src/onebot11/action/msg/SendMsg/handle-forward-node.ts | 9 +++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/core/src/apis/msg.ts b/src/core/src/apis/msg.ts index 143d1a22..fb0fafe4 100644 --- a/src/core/src/apis/msg.ts +++ b/src/core/src/apis/msg.ts @@ -94,6 +94,9 @@ export class NTQQMsgApi { } | undefined> { return napCatCore.session.getMsgService().getMultiMsg(peer, rootMsgId, parentMsgId); } + static async ForwardMsg(peer: Peer, msgIds: string[]) { + return napCatCore.session.getMsgService().forwardMsg(msgIds, peer, [peer], new Map()); + } static async getLastestMsgByUids(peer: Peer, count: number = 20) { let ret = await napCatCore.session.getMsgService().queryMsgsWithFilterEx('0', '0', '0', { chatInfo: peer, diff --git a/src/onebot11/action/msg/SendMsg/handle-forward-node.ts b/src/onebot11/action/msg/SendMsg/handle-forward-node.ts index 755cda97..d9cc523c 100644 --- a/src/onebot11/action/msg/SendMsg/handle-forward-node.ts +++ b/src/onebot11/action/msg/SendMsg/handle-forward-node.ts @@ -52,10 +52,15 @@ export async function handleForwardNode(destPeer: Peer, messageNodes: OB11Messag // 一个node表示一个人的消息 const nodeId = messageNode.data.id; // 有nodeId表示一个子转发消息卡片 + // 建议改成自带 forward 而不是 clone再发 if (nodeId) { - const nodeMsg = MessageUnique.getMsgIdAndPeerByShortId(parseInt(nodeId)); + const nodeMsg = MessageUnique.getMsgIdAndPeerByShortId(parseInt(nodeId)) || MessageUnique.getPeerByMsgId(nodeId); + if (!nodeMsg) { + logError('转发消息失败,未找到消息', nodeId); + continue; + } if (!needClone) { - nodeMsgIds.push(nodeMsg!.MsgId); + nodeMsgIds.push(nodeMsg.MsgId); } else { if (nodeMsg!.Peer.peerUid !== selfInfo.uid) { // need cloning