From 63bcee01a1d1f87392ea638a436bba9936006681 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: Thu, 31 Oct 2024 20:27:17 +0800 Subject: [PATCH] fix: report self --- src/onebot/index.ts | 62 ++++++++++++++++++--------------------------- 1 file changed, 24 insertions(+), 38 deletions(-) diff --git a/src/onebot/index.ts b/src/onebot/index.ts index d692d85a..58baac16 100644 --- a/src/onebot/index.ts +++ b/src/onebot/index.ts @@ -311,51 +311,37 @@ export class NapCatOneBot11Adapter { } }; - //const msgIdSend = new LRUCache(100); + const msgIdSend = new LRUCache(100); const recallMsgs = new LRUCache(100); msgListener.onAddSendMsg = async msg => { - if (msg.sendStatus == SendStatusType.KSEND_STATUS_SUCCESS) { - this.apis.MsgApi.parseMessage(msg) - .then((ob11Msg) => { - if (!ob11Msg) return; - ob11Msg.target_id = parseInt(msg.peerUin); - if (this.configLoader.configData.reportSelfMessage) { - msg.id = MessageUnique.createUniqueMsgId({ - chatType: msg.chatType, - peerUid: msg.peerUid, - guildId: '', - }, msg.msgId); - this.emitMsg(msg); - } else { - // logOB11Message(this.core, ob11Msg); - } - }); + if (msg.sendStatus == SendStatusType.KSEND_STATUS_SENDING) { + msgIdSend.put(msg.msgId, true) } }; msgListener.onMsgInfoListUpdate = async msgList => { this.emitRecallMsg(msgList, recallMsgs) .catch(e => this.context.logger.logError.bind(this.context.logger)('处理消息失败', e)); - // for (const msg of msgList.filter(e => e.senderUin == this.core.selfInfo.uin)) { - // if (msg.sendStatus == SendStatusType.KSEND_STATUS_SUCCESS && !msgIdSend.get(msg.msgId)) { - // msgIdSend.put(msg.msgId, true); - // // 完成后再post - // this.apis.MsgApi.parseMessage(msg) - // .then((ob11Msg) => { - // if (!ob11Msg) return; - // ob11Msg.target_id = parseInt(msg.peerUin); - // if (this.configLoader.configData.reportSelfMessage) { - // msg.id = MessageUnique.createUniqueMsgId({ - // chatType: msg.chatType, - // peerUid: msg.peerUid, - // guildId: '', - // }, msg.msgId); - // this.emitMsg(msg); - // } else { - // // logOB11Message(this.core, ob11Msg); - // } - // }); - // } - // } + for (const msg of msgList.filter(e => e.senderUin == this.core.selfInfo.uin)) { + if (msg.sendStatus == SendStatusType.KSEND_STATUS_SUCCESS && msgIdSend.get(msg.msgId)) { + msgIdSend.put(msg.msgId, true); + // 完成后再post + this.apis.MsgApi.parseMessage(msg) + .then((ob11Msg) => { + if (!ob11Msg) return; + ob11Msg.target_id = parseInt(msg.peerUin); + if (this.configLoader.configData.reportSelfMessage) { + msg.id = MessageUnique.createUniqueMsgId({ + chatType: msg.chatType, + peerUid: msg.peerUid, + guildId: '', + }, msg.msgId); + this.emitMsg(msg); + } else { + // logOB11Message(this.core, ob11Msg); + } + }); + } + } }; this.context.session.getMsgService().addKernelMsgListener(