feat: 性能优化

This commit is contained in:
手瓜一十雪
2024-11-25 21:28:04 +08:00
parent 00f726b515
commit 4e6af0a655

View File

@@ -527,12 +527,10 @@ export class NapCatOneBot11Adapter {
private async emitMsg(message: RawMessage) { private async emitMsg(message: RawMessage) {
const network = Object.values(this.configLoader.configData.network).flat() as Array<AdapterConfigWrap>; const network = Object.values(this.configLoader.configData.network).flat() as Array<AdapterConfigWrap>;
this.context.logger.logDebug('收到新消息 RawMessage', message); this.context.logger.logDebug('收到新消息 RawMessage', message);
await this.handleMsg(message, network); await Promise.allSettled([
if (message.chatType == ChatType.KCHATTYPEGROUP) { this.handleMsg(message, network),
await this.handleGroupEvent(message); message.chatType == ChatType.KCHATTYPEGROUP ? this.handleGroupEvent(message) : this.handlePrivateMsgEvent(message)
} else { ]);
await this.handlePrivateMsgEvent(message);
}
} }
private async handleMsg(message: RawMessage, network: Array<AdapterConfigWrap>) { private async handleMsg(message: RawMessage, network: Array<AdapterConfigWrap>) {
try { try {
@@ -607,18 +605,20 @@ export class NapCatOneBot11Adapter {
cardChangedEvent && await this.networkManager.emitEvent(cardChangedEvent); cardChangedEvent && await this.networkManager.emitEvent(cardChangedEvent);
} }
if (message.msgType === NTMsgType.KMSGTYPEFILE) { if (message.msgType === NTMsgType.KMSGTYPEFILE) {
//文件上传事件 文件为单元素 // 文件为单元素消息
const elementWrapper = message.elements.find(e => !!e.fileElement); const elementWrapper = message.elements.find(e => !!e.fileElement);
if (elementWrapper?.fileElement) { if (elementWrapper?.fileElement) {
const uploadGroupFileEvent = await this.apis.GroupApi.parseGroupUploadFileEvene(message, elementWrapper.fileElement, elementWrapper); const uploadGroupFileEvent = await this.apis.GroupApi.parseGroupUploadFileEvene(message, elementWrapper.fileElement, elementWrapper);
uploadGroupFileEvent && await this.networkManager.emitEvent(uploadGroupFileEvent); uploadGroupFileEvent && await this.networkManager.emitEvent(uploadGroupFileEvent);
} }
} } else if (message.msgType === NTMsgType.KMSGTYPEGRAYTIPS) {
const grayTipElement = message.elements.find((element) => element.grayTipElement)?.grayTipElement; // 灰条为单元素消息
const grayTipElement = message.elements[0].grayTipElement;
if (grayTipElement) { if (grayTipElement) {
const event = await this.apis.GroupApi.parseGrayTipElement(message, grayTipElement); const event = await this.apis.GroupApi.parseGrayTipElement(message, grayTipElement);
event && await this.networkManager.emitEvent(event); event && await this.networkManager.emitEvent(event);
} }
}
} catch (e) { } catch (e) {
this.context.logger.logError('constructGroupEvent error: ', e); this.context.logger.logError('constructGroupEvent error: ', e);
} }