From 5d78fdd6a487250f8d7c38b080f1fba96e5c58f7 Mon Sep 17 00:00:00 2001 From: idranme Date: Mon, 5 Aug 2024 22:07:04 +0800 Subject: [PATCH] fix --- src/main/main.ts | 3 +++ src/ntqqapi/wrapper.ts | 45 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/main/main.ts b/src/main/main.ts index 2dfdea8..3dc60c8 100644 --- a/src/main/main.ts +++ b/src/main/main.ts @@ -52,6 +52,8 @@ import { checkFfmpeg } from '../common/utils/video' import { GroupDecreaseSubType, OB11GroupDecreaseEvent } from '../onebot11/event/notice/OB11GroupDecreaseEvent' import '../ntqqapi/wrapper' import { sentMessages } from '@/ntqqapi/api' +import { NTEventDispatch } from '../common/utils/EventTask' +import { wrapperApi, wrapperConstructor } from '../ntqqapi/wrapper' let mainWindow: BrowserWindow | null = null @@ -436,6 +438,7 @@ function onLoad() { uidMaps[value] = key } }) + NTEventDispatch.init({ ListenerMap: wrapperConstructor, WrapperSession: wrapperApi.NodeIQQNTWrapperSession }) try { log('start get groups') const _groups = await NTQQGroupApi.getGroups() diff --git a/src/ntqqapi/wrapper.ts b/src/ntqqapi/wrapper.ts index e17beb1..40ed806 100644 --- a/src/ntqqapi/wrapper.ts +++ b/src/ntqqapi/wrapper.ts @@ -7,12 +7,46 @@ export interface NodeIQQNTWrapperSession { getBuddyService(): NodeIKernelBuddyService } -export interface WrapperNodeApi { - [key: string]: any +export interface WrapperApi { NodeIQQNTWrapperSession?: NodeIQQNTWrapperSession } -export const wrapperApi: WrapperNodeApi = {} +export interface WrapperConstructor { + [key: string]: any + NodeIKernelBuddyListener?: any + NodeIKernelGroupListener?: any + NodeQQNTWrapperUtil?: any + NodeIKernelMsgListener?: any + NodeIQQNTWrapperEngine?: any + NodeIGlobalAdapter?: any + NodeIDependsAdapter?: any + NodeIDispatcherAdapter?: any + NodeIKernelSessionListener?: any + NodeIKernelLoginService?: any + NodeIKernelLoginListener?: any + NodeIKernelProfileService?: any + NodeIKernelProfileListener?: any +} + +export const wrapperApi: WrapperApi = {} + +export const wrapperConstructor: WrapperConstructor = {} + +const constructor = [ + 'NodeIKernelBuddyListener', + 'NodeIKernelGroupListener', + 'NodeQQNTWrapperUtil', + 'NodeIKernelMsgListener', + 'NodeIQQNTWrapperEngine', + 'NodeIGlobalAdapter', + 'NodeIDependsAdapter', + 'NodeIDispatcherAdapter', + 'NodeIKernelSessionListener', + 'NodeIKernelLoginService', + 'NodeIKernelLoginListener', + 'NodeIKernelProfileService', + 'NodeIKernelProfileListener', +] Process.dlopenOrig = Process.dlopen @@ -24,8 +58,11 @@ Process.dlopen = function (module, filename, flags = os.constants.dlopen.RTLD_LA const ret = new target(...args) if (export_name === 'NodeIQQNTWrapperSession') wrapperApi.NodeIQQNTWrapperSession = ret return ret - }, + } }) + if (constructor.includes(export_name)) { + wrapperConstructor[export_name] = module.exports[export_name] + } } return dlopenRet } \ No newline at end of file