diff --git a/src/common/event.ts b/src/common/event.ts index 821b0eb2..42c8cea0 100644 --- a/src/common/event.ts +++ b/src/common/event.ts @@ -234,25 +234,33 @@ export class NTEventWrapper { this.EventTask.get(ListenerMainName)?.get(ListenerSubName)?.set(id, eventCallback); this.createListenerFunction(ListenerMainName); - this.createEventFunction(serviceAndMethod)!(...(args)) - .then((eventResult: any) => { - retEvent = eventResult; - if (!checkerEvent(retEvent) && timeoutRef.hasRef()) { - clearTimeout(timeoutRef); - reject( - new Error( - 'EventChecker Failed: NTEvent serviceAndMethod:' + - serviceAndMethod + - ' ListenerName:' + - listenerAndMethod + - ' EventRet:\n' + - JSON.stringify(retEvent, null, 4) + - '\n', - ), - ); - } + let eventResult = this.createEventFunction(serviceAndMethod)!(...(args)); + + const eventRetHandle = (eventData: any) => { + retEvent = eventData; + if (!checkerEvent(retEvent) && timeoutRef.hasRef()) { + clearTimeout(timeoutRef); + reject( + new Error( + 'EventChecker Failed: NTEvent serviceAndMethod:' + + serviceAndMethod + + ' ListenerName:' + + listenerAndMethod + + ' EventRet:\n' + + JSON.stringify(retEvent, null, 4) + + '\n', + ), + ); + } + } + if (eventResult instanceof Promise) { + eventResult.then((eventResult: any) => { + eventRetHandle(eventResult); }) - .catch(reject); + .catch(reject); + } else { + eventRetHandle(eventResult); + } }, ); } diff --git a/src/onebot/action/go-cqhttp/GetGroupRootFiles.ts b/src/onebot/action/go-cqhttp/GetGroupRootFiles.ts index dc713687..4ed57ae2 100644 --- a/src/onebot/action/go-cqhttp/GetGroupRootFiles.ts +++ b/src/onebot/action/go-cqhttp/GetGroupRootFiles.ts @@ -28,7 +28,7 @@ export class GetGroupRootFiles extends BaseAction []); + }); return { files: ret.filter(item => item.fileInfo)