refactor: event emit

This commit is contained in:
手瓜一十雪
2024-11-26 11:10:59 +08:00
parent 657ddd3341
commit aadebb3cc5

View File

@@ -281,7 +281,14 @@ 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);
let element = msg?.elements[0]; let element = msg?.elements[0];
if (msg && element) { if (msg && element) {
await this.emitRecallMsg(msg, element); let recallEvent = await this.emitRecallMsg(msg, element);
try {
if (recallEvent) {
await this.networkManager.emitEvent(recallEvent);
}
} catch (e) {
this.context.logger.logError('处理消息撤回失败', e);
}
} }
} }
msgListener.onMsgInfoListUpdate = async (msgList) => { msgListener.onMsgInfoListUpdate = async (msgList) => {
@@ -542,6 +549,7 @@ export class NapCatOneBot11Adapter {
message.chatType == ChatType.KCHATTYPEGROUP ? this.handleGroupEvent(message) : this.handlePrivateMsgEvent(message) message.chatType == ChatType.KCHATTYPEGROUP ? this.handleGroupEvent(message) : this.handlePrivateMsgEvent(message)
]); ]);
} }
private async handleMsg(message: RawMessage, network: Array<AdapterConfigWrap>) { private async handleMsg(message: RawMessage, network: Array<AdapterConfigWrap>) {
try { try {
const ob11Msg = await this.apis.MsgApi.parseMessageV2(message, this.configLoader.configData.parseMultMsg); const ob11Msg = await this.apis.MsgApi.parseMessageV2(message, this.configLoader.configData.parseMultMsg);
@@ -653,41 +661,32 @@ export class NapCatOneBot11Adapter {
const peer: Peer = { chatType: message.chatType, peerUid: message.peerUid, guildId: '' }; const peer: Peer = { chatType: message.chatType, peerUid: message.peerUid, guildId: '' };
let oriMessageId = MessageUnique.getShortIdByMsgId(message.msgId) ?? MessageUnique.createUniqueMsgId(peer, message.msgId); let oriMessageId = MessageUnique.getShortIdByMsgId(message.msgId) ?? MessageUnique.createUniqueMsgId(peer, message.msgId);
if (message.chatType == ChatType.KCHATTYPEC2C) { if (message.chatType == ChatType.KCHATTYPEC2C) {
await this.emitFriendRecallMsg(message, oriMessageId, element); return await this.emitFriendRecallMsg(message, oriMessageId, element);
} else if (message.chatType == ChatType.KCHATTYPEGROUP) { } else if (message.chatType == ChatType.KCHATTYPEGROUP) {
await this.emitGroupRecallMsg(message, oriMessageId, element); return await this.emitGroupRecallMsg(message, oriMessageId, element);
} }
} }
private async emitFriendRecallMsg(message: RawMessage, oriMessageId: number, element: MessageElement) { private async emitFriendRecallMsg(message: RawMessage, oriMessageId: number, element: MessageElement) {
const friendRecallEvent = new OB11FriendRecallNoticeEvent( return new OB11FriendRecallNoticeEvent(
this.core, this.core,
+message.senderUin, +message.senderUin,
oriMessageId oriMessageId
); );
try {
await this.networkManager.emitEvent(friendRecallEvent);
} catch (e) {
this.context.logger.logError('处理好友消息撤回失败', e);
}
} }
private async emitGroupRecallMsg(message: RawMessage, oriMessageId: number, element: MessageElement) { private async emitGroupRecallMsg(message: RawMessage, oriMessageId: number, element: MessageElement) {
const operatorUid = element.grayTipElement?.revokeElement.operatorUid; const operatorUid = element.grayTipElement?.revokeElement.operatorUid;
if (!operatorUid) return; if (!operatorUid) return undefined;
let operatorId = message.senderUin ?? await this.core.apis.UserApi.getUinByUidV2(operatorUid); let operatorId = message.senderUin ?? await this.core.apis.UserApi.getUinByUidV2(operatorUid);
const groupRecallEvent = new OB11GroupRecallNoticeEvent( return new OB11GroupRecallNoticeEvent(
this.core, this.core,
+message.peerUin, +message.peerUin,
+message.senderUin, +message.senderUin,
+operatorId, +operatorId,
oriMessageId oriMessageId
); );
try {
await this.networkManager.emitEvent(groupRecallEvent);
} catch (e) {
this.context.logger.logError('处理群消息撤回失败', e);
}
} }
} }