89 lines
2.8 KiB
Python
89 lines
2.8 KiB
Python
"""
|
||
插件接口规范示例
|
||
此文件定义了插件应遵循的接口规范
|
||
"""
|
||
|
||
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加载和启用插件 |