refactor(plugin_system): 统一插件卸载逻辑到注册中心
将 `PluginManager.unload_plugin` 中的卸载逻辑移至 `component_registry`。现在 `PluginManager` 直接调用 `component_registry.unregister_plugin` 来处理所有组件和插件的注销,简化了插件管理器的职责,使卸载过程更加集中和一致。
This commit is contained in:
@@ -174,13 +174,11 @@ class PluginManager:
|
||||
if plugin_name not in self.loaded_plugins:
|
||||
logger.warning(f"插件 {plugin_name} 未加载")
|
||||
return False
|
||||
plugin_instance = self.loaded_plugins[plugin_name]
|
||||
plugin_info = plugin_instance.plugin_info
|
||||
success = True
|
||||
for component in plugin_info.components:
|
||||
success &= await component_registry.remove_component(component.name, component.component_type, plugin_name)
|
||||
success &= component_registry.remove_plugin_registry(plugin_name)
|
||||
del self.loaded_plugins[plugin_name]
|
||||
# 调用 component_registry 中统一的卸载方法
|
||||
success = await component_registry.unregister_plugin(plugin_name)
|
||||
if success:
|
||||
# 从已加载插件中移除
|
||||
del self.loaded_plugins[plugin_name]
|
||||
return success
|
||||
|
||||
async def reload_registered_plugin(self, plugin_name: str) -> bool:
|
||||
|
||||
Reference in New Issue
Block a user