模块管理优化
This commit is contained in:
@@ -305,19 +305,22 @@ class PluginManagerPlugin(MessagePluginInterface):
|
|||||||
(roomid if roomid else sender), sender)
|
(roomid if roomid else sender), sender)
|
||||||
return True, f"插件 {actual_plugin_name} 不存在"
|
return True, f"插件 {actual_plugin_name} 不存在"
|
||||||
|
|
||||||
|
# 获取插件的模块名,这才是插件管理器需要的名称
|
||||||
|
module_name = plugin.__class__.__module__.split('.')[-2]
|
||||||
|
|
||||||
# 记录插件状态,以便重新加载后恢复
|
# 记录插件状态,以便重新加载后恢复
|
||||||
was_running = plugin.status == PluginStatus.RUNNING
|
was_running = plugin.status == PluginStatus.RUNNING
|
||||||
|
|
||||||
# 先卸载插件 - 这里使用actual_plugin_name而不是plugin_name
|
# 先卸载插件 - 使用模块名而不是显示名称
|
||||||
self.LOG.info(f"正在卸载插件 {actual_plugin_name} 以进行重载")
|
self.LOG.info(f"正在卸载插件 {actual_plugin_name}(模块名:{module_name}) 以进行重载")
|
||||||
if not self.plugin_manager.unload_plugin(actual_plugin_name):
|
if not self.plugin_manager.unload_plugin(module_name):
|
||||||
wcf.send_text(f"❌插件 {actual_plugin_name} 卸载失败,无法重载",
|
wcf.send_text(f"❌插件 {actual_plugin_name} 卸载失败,无法重载",
|
||||||
(roomid if roomid else sender), sender)
|
(roomid if roomid else sender), sender)
|
||||||
return False, f"插件 {actual_plugin_name} 卸载失败,无法重载"
|
return False, f"插件 {actual_plugin_name} 卸载失败,无法重载"
|
||||||
|
|
||||||
# 然后加载插件 - 这里使用actual_plugin_name而不是plugin_name
|
# 然后加载插件 - 使用模块名而不是显示名称
|
||||||
self.LOG.info(f"正在加载插件 {actual_plugin_name}")
|
self.LOG.info(f"正在加载插件 {module_name}")
|
||||||
plugin = self.plugin_manager.load_plugin(actual_plugin_name)
|
plugin = self.plugin_manager.load_plugin(module_name)
|
||||||
if not plugin:
|
if not plugin:
|
||||||
wcf.send_text(f"❌插件 {actual_plugin_name} 加载失败",
|
wcf.send_text(f"❌插件 {actual_plugin_name} 加载失败",
|
||||||
(roomid if roomid else sender), sender)
|
(roomid if roomid else sender), sender)
|
||||||
@@ -360,8 +363,9 @@ class PluginManagerPlugin(MessagePluginInterface):
|
|||||||
(roomid if roomid else sender), sender)
|
(roomid if roomid else sender), sender)
|
||||||
return True, f"插件 {actual_plugin_name} 不存在或已卸载"
|
return True, f"插件 {actual_plugin_name} 不存在或已卸载"
|
||||||
|
|
||||||
# 使用插件管理器卸载插件
|
# 使用插件管理器卸载插件 - 使用模块名而不是显示名称
|
||||||
success = self.plugin_manager.unload_plugin(actual_plugin_name)
|
self.LOG.info(f"正在卸载插件 {actual_plugin_name}(模块名:{module_name})")
|
||||||
|
success = self.plugin_manager.unload_plugin(module_name)
|
||||||
if success:
|
if success:
|
||||||
if not silent:
|
if not silent:
|
||||||
wcf.send_text(f"✅插件 {actual_plugin_name} 卸载成功",
|
wcf.send_text(f"✅插件 {actual_plugin_name} 卸载成功",
|
||||||
|
|||||||
Reference in New Issue
Block a user