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