""" 插件接口规范示例 此文件定义了插件应遵循的接口规范 """ from plugins.plugin_manager import BasePlugin class ExamplePlugin(BasePlugin): """ 插件接口规范示例 所有插件都应该继承BasePlugin类并实现以下方法 """ def __init__(self, plugin_manager, name): super().__init__(plugin_manager, name) # 设置插件配置 self.config = { "version": "1.0.0", "author": "Your Name", "description": "插件功能描述" } def initialize(self) -> bool: """ 初始化插件 在插件加载时调用,用于执行一次性设置 返回True表示初始化成功,False表示失败 """ print(f"初始化插件: {self.name}") # 在这里执行插件初始化逻辑 return True def enable(self) -> bool: """ 启用插件 在插件启用时调用,用于注册事件处理器、创建GUI元素等 返回True表示启用成功,False表示失败 """ if not super().enable(): return False print(f"启用插件: {self.name}") # 在这里执行插件启用逻辑 # 例如注册事件处理器: # self.plugin_manager.world.accept("f1", self.on_f1_pressed) return True def disable(self) -> bool: """ 禁用插件 在插件禁用时调用,用于清理资源、移除事件处理器等 返回True表示禁用成功,False表示失败 """ if not super().disable(): return False print(f"禁用插件: {self.name}") # 在这里执行插件禁用逻辑 # 例如移除事件处理器: # self.plugin_manager.world.ignore("f1") return True def finalize(self): """ 清理插件资源 在插件卸载时调用,用于执行最终清理工作 """ print(f"清理插件资源: {self.name}") # 在这里执行最终清理逻辑 def get_info(self) -> dict: """ 获取插件信息 返回包含插件信息的字典 """ info = super().get_info() info.update({ "version": self.config.get("version", "1.0.0"), "author": self.config.get("author", "Unknown"), "description": self.config.get("description", "Base plugin class") }) return info # 插件开发步骤说明: # 1. 在plugins/user/目录下创建插件目录,如my_plugin # 2. 在插件目录中创建plugin.py文件 # 3. 在plugin.py中实现Plugin类,继承BasePlugin # 4. 实现必要的方法(initialize, enable, disable, finalize) # 5. 在MyWorld中通过plugin_manager加载和启用插件