mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-12-19 21:20:07 +08:00
Fix intermittent recall event loss in high-frequency scenarios
Co-authored-by: sj817 <74231782+sj817@users.noreply.github.com>
This commit is contained in:
parent
ec39b76bf5
commit
32df6d5911
@ -347,21 +347,19 @@ export class NapCatOneBot11Adapter {
|
|||||||
peerUid: uid,
|
peerUid: uid,
|
||||||
guildId: '',
|
guildId: '',
|
||||||
};
|
};
|
||||||
let msg = (await this.core.apis.MsgApi.queryMsgsWithFilterExWithSeq(peer, msgSeq)).msgList.find(e => e.msgType === NTMsgType.KMSGTYPEGRAYTIPS);
|
const msg = (await this.core.apis.MsgApi.queryMsgsWithFilterExWithSeq(peer, msgSeq)).msgList.find(e => e.msgType === NTMsgType.KMSGTYPEGRAYTIPS);
|
||||||
const element = msg?.elements.find(e => !!e.grayTipElement?.revokeElement);
|
const element = msg?.elements.find(e => !!e.grayTipElement?.revokeElement);
|
||||||
|
|
||||||
|
// Clean up recall event cache if this is a self-device operation
|
||||||
if (msg && element?.grayTipElement?.revokeElement.isSelfOperate) {
|
if (msg && element?.grayTipElement?.revokeElement.isSelfOperate) {
|
||||||
const isSelfDevice = this.recallEventCache.has(msg.msgId);
|
const cachedTimeout = this.recallEventCache.get(msg.msgId);
|
||||||
if (isSelfDevice) {
|
if (cachedTimeout) {
|
||||||
await this.core.eventWrapper.registerListen('NodeIKernelMsgListener/onMsgRecall',
|
clearTimeout(cachedTimeout);
|
||||||
(chatType: ChatType, uid: string, msgSeq: string) => {
|
this.recallEventCache.delete(msg.msgId);
|
||||||
return chatType === msg?.chatType && uid === msg?.peerUid && msgSeq === msg?.msgSeq;
|
this.context.logger.logDebug('自操作消息撤回事件');
|
||||||
}
|
|
||||||
).catch(() => {
|
|
||||||
msg = undefined;
|
|
||||||
this.context.logger.logDebug('自操作消息撤回事件');
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (msg && element) {
|
if (msg && element) {
|
||||||
const recallEvent = await this.emitRecallMsg(msg, element);
|
const recallEvent = await this.emitRecallMsg(msg, element);
|
||||||
try {
|
try {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user