From af9092d7c739706048fd5e19ee74db9b293d8b75 Mon Sep 17 00:00:00 2001 From: linyuchen Date: Wed, 17 Apr 2024 17:35:14 +0800 Subject: [PATCH] fix: send forward msg --- src/onebot11/action/go-cqhttp/GetForwardMsg.ts | 11 +++++++++-- src/onebot11/action/msg/SendMsg.ts | 10 ++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/onebot11/action/go-cqhttp/GetForwardMsg.ts b/src/onebot11/action/go-cqhttp/GetForwardMsg.ts index 54662b28..23316aea 100644 --- a/src/onebot11/action/go-cqhttp/GetForwardMsg.ts +++ b/src/onebot11/action/go-cqhttp/GetForwardMsg.ts @@ -18,9 +18,16 @@ export class GoCQHTTGetForwardMsgAction extends BaseAction { actionName = ActionName.GoCQHTTP_GetForwardMsg; protected async _handle(payload: Payload): Promise { - const rootMsg = await dbUtil.getMsgByLongId( payload.id || payload.message_id); + const msgId = payload.message_id || payload.id; + if (!msgId) { + throw Error('message_id is required'); + } + let rootMsg = await dbUtil.getMsgByLongId(msgId); if (!rootMsg) { - throw Error('msg not found'); + rootMsg = await dbUtil.getMsgByShortId(parseInt(msgId)); + if (!rootMsg){ + throw Error('msg not found'); + } } const data = await NTQQMsgApi.getMultiMsg({ chatType: rootMsg.chatType, diff --git a/src/onebot11/action/msg/SendMsg.ts b/src/onebot11/action/msg/SendMsg.ts index c7b0a002..2d75dc13 100644 --- a/src/onebot11/action/msg/SendMsg.ts +++ b/src/onebot11/action/msg/SendMsg.ts @@ -333,7 +333,13 @@ export class SendMsg extends BaseAction { if (this.getSpecialMsgNum(payload, OB11MessageDataType.node)) { try { const returnMsg = await this.handleForwardNode(peer, messages as OB11MessageNode[], group); - return { message_id: returnMsg!.id! }; + if (returnMsg){ + const msgShortId =await dbUtil.addMsg(returnMsg!, false); + return { message_id: msgShortId }; + } + else{ + throw Error('发送转发消息失败'); + } } catch (e: any) { throw Error('发送转发消息失败 ' + e.toString()); } @@ -510,7 +516,7 @@ export class SendMsg extends BaseAction { throw Error('转发消息失败,生成节点为空'); } try { - log('开发转发', nodeMsgIds); + log('开发转发', srcPeer, destPeer, nodeMsgIds); return await NTQQMsgApi.multiForwardMsg(srcPeer!, destPeer, nodeMsgIds); } catch (e) { log('forward failed', e);