From 4e6af0a6559d0934b616e5a4fa8430f4d57ff6c7 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: Mon, 25 Nov 2024 21:28:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=80=A7=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/onebot/index.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/onebot/index.ts b/src/onebot/index.ts index bb02d11a..882fef00 100644 --- a/src/onebot/index.ts +++ b/src/onebot/index.ts @@ -527,12 +527,10 @@ export class NapCatOneBot11Adapter { private async emitMsg(message: RawMessage) { const network = Object.values(this.configLoader.configData.network).flat() as Array; this.context.logger.logDebug('收到新消息 RawMessage', message); - await this.handleMsg(message, network); - if (message.chatType == ChatType.KCHATTYPEGROUP) { - await this.handleGroupEvent(message); - } else { - await this.handlePrivateMsgEvent(message); - } + await Promise.allSettled([ + this.handleMsg(message, network), + message.chatType == ChatType.KCHATTYPEGROUP ? this.handleGroupEvent(message) : this.handlePrivateMsgEvent(message) + ]); } private async handleMsg(message: RawMessage, network: Array) { try { @@ -607,17 +605,19 @@ export class NapCatOneBot11Adapter { cardChangedEvent && await this.networkManager.emitEvent(cardChangedEvent); } if (message.msgType === NTMsgType.KMSGTYPEFILE) { - //文件上传事件 文件为单一元素 + // 文件为单元素消息 const elementWrapper = message.elements.find(e => !!e.fileElement); if (elementWrapper?.fileElement) { const uploadGroupFileEvent = await this.apis.GroupApi.parseGroupUploadFileEvene(message, elementWrapper.fileElement, elementWrapper); uploadGroupFileEvent && await this.networkManager.emitEvent(uploadGroupFileEvent); } - } - const grayTipElement = message.elements.find((element) => element.grayTipElement)?.grayTipElement; - if (grayTipElement) { - const event = await this.apis.GroupApi.parseGrayTipElement(message, grayTipElement); - event && await this.networkManager.emitEvent(event); + } else if (message.msgType === NTMsgType.KMSGTYPEGRAYTIPS) { + // 灰条为单元素消息 + const grayTipElement = message.elements[0].grayTipElement; + if (grayTipElement) { + const event = await this.apis.GroupApi.parseGrayTipElement(message, grayTipElement); + event && await this.networkManager.emitEvent(event); + } } } catch (e) { this.context.logger.logError('constructGroupEvent error: ', e);