mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2025-12-19 21:20:07 +08:00
fix: #1171
This commit is contained in:
parent
5c6d1e6a14
commit
ea695fc9e9
@ -28,13 +28,13 @@ class GetMsg extends OneBotAction<Payload, OB11Message> {
|
|||||||
throw new Error('消息不存在');
|
throw new Error('消息不存在');
|
||||||
}
|
}
|
||||||
const peer = { guildId: '', peerUid: msgIdWithPeer?.Peer.peerUid, chatType: msgIdWithPeer.Peer.chatType };
|
const peer = { guildId: '', peerUid: msgIdWithPeer?.Peer.peerUid, chatType: msgIdWithPeer.Peer.chatType };
|
||||||
const orimsg = this.obContext.recallMsgCache.get(msgIdWithPeer.MsgId);
|
//const orimsg = this.obContext.recallMsgCache.get(msgIdWithPeer.MsgId);
|
||||||
let msg: RawMessage|undefined;
|
let msg: RawMessage|undefined;
|
||||||
if (orimsg) {
|
// if (orimsg) {
|
||||||
msg = orimsg;
|
// msg = orimsg;
|
||||||
} else {
|
// } else {
|
||||||
msg = (await this.core.apis.MsgApi.getMsgsByMsgId(peer, [msgIdWithPeer?.MsgId || payload.message_id.toString()])).msgList[0];
|
msg = (await this.core.apis.MsgApi.getMsgsByMsgId(peer, [msgIdWithPeer?.MsgId || payload.message_id.toString()])).msgList[0];
|
||||||
}
|
//}
|
||||||
if (!msg) throw Error('消息不存在');
|
if (!msg) throw Error('消息不存在');
|
||||||
const retMsg = await this.obContext.apis.MsgApi.parseMessage(msg, config.messagePostFormat);
|
const retMsg = await this.obContext.apis.MsgApi.parseMessage(msg, config.messagePostFormat);
|
||||||
if (!retMsg) throw Error('消息为空');
|
if (!retMsg) throw Error('消息为空');
|
||||||
|
|||||||
@ -61,7 +61,7 @@ export class NapCatOneBot11Adapter {
|
|||||||
networkManager: OB11NetworkManager;
|
networkManager: OB11NetworkManager;
|
||||||
actions: ActionMap;
|
actions: ActionMap;
|
||||||
private readonly bootTime = Date.now() / 1000;
|
private readonly bootTime = Date.now() / 1000;
|
||||||
recallMsgCache = new LRUCache<string, RawMessage>(100);
|
//recallMsgCache = new LRUCache<string, boolean>(100);
|
||||||
|
|
||||||
constructor(core: NapCatCore, context: InstanceContext, pathWrapper: NapCatPathWrapper) {
|
constructor(core: NapCatCore, context: InstanceContext, pathWrapper: NapCatPathWrapper) {
|
||||||
this.core = core;
|
this.core = core;
|
||||||
@ -306,7 +306,9 @@ export class NapCatOneBot11Adapter {
|
|||||||
};
|
};
|
||||||
let msg = (await this.core.apis.MsgApi.queryMsgsWithFilterExWithSeq(peer, msgSeq)).msgList.find(e => e.msgType == NTMsgType.KMSGTYPEGRAYTIPS);
|
let 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);
|
||||||
if (element?.grayTipElement?.revokeElement.isSelfOperate && msg) {
|
let isSelfOperateDevice = element?.grayTipElement?.revokeElement.operatorUid == this.core.selfInfo.uid;
|
||||||
|
// 其它设备的UID是不一样的 UID跟设备有关 从而放掉其它设备来的recall 避免二次吞掉recall
|
||||||
|
if (msg && element?.grayTipElement?.revokeElement.isSelfOperate && isSelfOperateDevice) {
|
||||||
await this.core.eventWrapper.registerListen('NodeIKernelMsgListener/onMsgRecall',
|
await this.core.eventWrapper.registerListen('NodeIKernelMsgListener/onMsgRecall',
|
||||||
(chatType: ChatType, uid: string, msgSeq: string) => {
|
(chatType: ChatType, uid: string, msgSeq: string) => {
|
||||||
return chatType === msg?.chatType && uid === msg?.peerUid && msgSeq === msg?.msgSeq;
|
return chatType === msg?.chatType && uid === msg?.peerUid && msgSeq === msg?.msgSeq;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user