From 7a98025df8411e3528b1d2005f2f5ee1b017969f Mon Sep 17 00:00:00 2001 From: Alen Date: Sun, 18 Aug 2024 01:40:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=BC=95=E7=94=A8=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复 (疑似)旧设备引用消息验证失败 --- src/onebot/helper/data.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/onebot/helper/data.ts b/src/onebot/helper/data.ts index c5a28a5b..359c642d 100644 --- a/src/onebot/helper/data.ts +++ b/src/onebot/helper/data.ts @@ -149,6 +149,7 @@ export class OB11Constructor { message_data['type'] = OB11MessageDataType.reply; //log("收到回复消息", element.replyElement); try { + let oldMsgFlag = false; const records = msg.records.find(msgRecord => msgRecord.msgId === element?.replyElement?.sourceMsgIdInRecords); const peer = { chatType: msg.chatType, @@ -163,12 +164,13 @@ export class OB11Constructor { chatType: msg.chatType, }, element.replyElement.replayMsgSeq, 1, true, true)).msgList.find(msg => msg.msgRandom === records.msgRandom); if (!replyMsg || records.msgRandom !== replyMsg.msgRandom) { + if (!replyMsg && records.msgRandom === '0') oldMsgFlag = true; replyMsg = (await NTQQMsgApi.getSingleMsg(peer, element.replyElement.replayMsgSeq)).msgList[0]; } if (msg.peerUin == '284840486') { //合并消息内侧 消息具体定位不到 } - if ((!replyMsg || records.msgRandom !== replyMsg.msgRandom) && msg.peerUin !== '284840486') { + if ((!replyMsg || (records.msgRandom !== replyMsg.msgRandom && !oldMsgFlag || (oldMsgFlag && records.msgSeq !== replyMsg.msgSeq))) && msg.peerUin !== '284840486') { throw new Error('回复消息消息验证失败'); } message_data['data']['id'] = MessageUnique.createMsg({