From d23785f34ded30a44c7b9e97cd8c5515ec057d98 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: Wed, 14 Jan 2026 13:18:37 +0800 Subject: [PATCH] Add isActive property to plugin adapters Introduces an isActive getter to OB11PluginAdapter and OB11PluginMangerAdapter, which returns true only if the adapter is enabled and has loaded plugins. Updates event emission logic to use isActive instead of isEnable, ensuring events are only sent to active adapters. --- packages/napcat-onebot/network/index.ts | 6 +++--- packages/napcat-onebot/network/plugin-manger.ts | 8 ++++++-- packages/napcat-onebot/network/plugin.ts | 4 ++++ 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/packages/napcat-onebot/network/index.ts b/packages/napcat-onebot/network/index.ts index 94d51d74..80a49c3d 100644 --- a/packages/napcat-onebot/network/index.ts +++ b/packages/napcat-onebot/network/index.ts @@ -21,7 +21,7 @@ export class OB11NetworkManager { async emitEvent (event: OB11EmitEventContent) { return Promise.all(Array.from(this.adapters.values()).map(async adapter => { - if (adapter.isEnable) { + if (adapter.isActive) { return await adapter.onEvent(event); } })); @@ -34,7 +34,7 @@ export class OB11NetworkManager { async emitEventByName (names: string[], event: OB11EmitEventContent) { return Promise.all(names.map(async name => { const adapter = this.adapters.get(name); - if (adapter && adapter.isEnable) { + if (adapter && adapter.isActive) { return await adapter.onEvent(event); } })); @@ -43,7 +43,7 @@ export class OB11NetworkManager { async emitEventByNames (map: Map) { return Promise.all(Array.from(map.entries()).map(async ([name, event]) => { const adapter = this.adapters.get(name); - if (adapter && adapter.isEnable) { + if (adapter && adapter.isActive) { return await adapter.onEvent(event); } })); diff --git a/packages/napcat-onebot/network/plugin-manger.ts b/packages/napcat-onebot/network/plugin-manger.ts index 9334854b..56c096ed 100644 --- a/packages/napcat-onebot/network/plugin-manger.ts +++ b/packages/napcat-onebot/network/plugin-manger.ts @@ -33,6 +33,10 @@ export class OB11PluginMangerAdapter extends IOB11NetworkAdapter { private readonly pluginPath: string; private loadedPlugins: Map = new Map(); declare config: PluginConfig; + override get isActive (): boolean { + return this.isEnable && this.loadedPlugins.size > 0; + } + constructor ( name: string, core: NapCatCore, obContext: NapCatOneBot11Adapter, actions: ActionMap ) { @@ -251,7 +255,7 @@ export class OB11PluginMangerAdapter extends IOB11NetworkAdapter { this.logger.log(`[Plugin Adapter] Unloaded plugin: ${pluginName}`); } - async onEvent(event: T) { + async onEvent (event: T) { if (!this.isEnable) { return; } @@ -359,7 +363,7 @@ export class OB11PluginMangerAdapter extends IOB11NetworkAdapter { // 重新加载插件 const isDirectory = fs.statSync(plugin.pluginPath).isDirectory() && - plugin.pluginPath !== this.pluginPath; + plugin.pluginPath !== this.pluginPath; if (isDirectory) { const dirname = path.basename(plugin.pluginPath); diff --git a/packages/napcat-onebot/network/plugin.ts b/packages/napcat-onebot/network/plugin.ts index bf5c842f..f3508510 100644 --- a/packages/napcat-onebot/network/plugin.ts +++ b/packages/napcat-onebot/network/plugin.ts @@ -33,6 +33,10 @@ export class OB11PluginAdapter extends IOB11NetworkAdapter { private readonly pluginPath: string; private loadedPlugins: Map = new Map(); declare config: PluginConfig; + override get isActive (): boolean { + return this.isEnable && this.loadedPlugins.size > 0; + } + constructor ( name: string, core: NapCatCore, obContext: NapCatOneBot11Adapter, actions: ActionMap ) {