这个修改的主要优点是:
1. 在插件初始化之前就进行检查,避免不必要的资源消耗 2. 保持了配置文件的控制作用 3. 通过日志清晰地显示插件未加载的原因 需要注意的是,这个修改假设所有插件的配置文件都遵循相同的结构(即使用插件类名作为配置节点)。如果有些插件使用不同的配置结构,可能需要调整检查逻辑。
This commit is contained in:
@@ -294,11 +294,18 @@ class PluginManager:
|
|||||||
# 设置插件路径
|
# 设置插件路径
|
||||||
plugin.set_plugin_path(plugin_path)
|
plugin.set_plugin_path(plugin_path)
|
||||||
|
|
||||||
|
# 在load_plugin方法中,找到加载配置后的位置(约在第298行)
|
||||||
# 加载插件配置
|
# 加载插件配置
|
||||||
if not plugin.load_config():
|
if not plugin.load_config():
|
||||||
self.LOG.error(f"PluginManager:插件模块 {module_name} 加载配置失败")
|
self.LOG.error(f"PluginManager:插件模块 {module_name} 加载配置失败")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
# 添加检查enable状态的代码
|
||||||
|
plugin_config = plugin._config.get(plugin.__class__.__name__, {})
|
||||||
|
if not plugin_config.get("enable", True): # 默认为True,如果没有配置
|
||||||
|
self.LOG.info(f"PluginManager:插件 {module_name} 已禁用,跳过加载")
|
||||||
|
return None
|
||||||
|
|
||||||
# 初始化插件
|
# 初始化插件
|
||||||
if not plugin.initialize(self.system_context):
|
if not plugin.initialize(self.system_context):
|
||||||
self.LOG.error(f"PluginManager:插件模块 {module_name} 初始化失败")
|
self.LOG.error(f"PluginManager:插件模块 {module_name} 初始化失败")
|
||||||
|
|||||||
Reference in New Issue
Block a user