feat: Enhance plugin configuration management and SDK integration
- Add support for configuration reload scopes in the plugin runtime. - Implement validation for SDK plugins to ensure required lifecycle methods are overridden. - Update the configuration update handling to include scope information. - Introduce tests for expression auto-check task and NapCat adapter SDK integration. - Refactor configuration management to support callbacks with variable arguments. - Improve plugin loading and error handling for configuration updates. - Ensure that plugins can manage their own configuration updates effectively.
This commit is contained in:
@@ -3,16 +3,22 @@
|
||||
你的第一个 MaiCore 插件,包含问候功能、时间查询等基础示例。
|
||||
"""
|
||||
|
||||
from maibot_sdk import Action, Command, EventHandler, MaiBotPlugin, Tool
|
||||
from maibot_sdk.types import ActivationType, EventType, ToolParameterInfo, ToolParamType
|
||||
|
||||
import datetime
|
||||
import random
|
||||
|
||||
from maibot_sdk import MaiBotPlugin, Action, Command, Tool, EventHandler
|
||||
from maibot_sdk.types import ActivationType, EventType, ToolParameterInfo, ToolParamType
|
||||
|
||||
|
||||
class HelloWorldPlugin(MaiBotPlugin):
|
||||
"""Hello World 示例插件"""
|
||||
|
||||
async def on_load(self) -> None:
|
||||
"""处理插件加载。"""
|
||||
|
||||
async def on_unload(self) -> None:
|
||||
"""处理插件卸载。"""
|
||||
|
||||
# ===== Tool 组件 =====
|
||||
|
||||
@Tool(
|
||||
@@ -146,6 +152,25 @@ class HelloWorldPlugin(MaiBotPlugin):
|
||||
|
||||
return True, True, None, None, None
|
||||
|
||||
async def on_config_update(self, scope: str, config_data: dict[str, object], version: str) -> None:
|
||||
"""处理配置热重载事件。
|
||||
|
||||
Args:
|
||||
scope: 配置变更范围。
|
||||
config_data: 最新配置数据。
|
||||
version: 配置版本号。
|
||||
"""
|
||||
|
||||
del scope
|
||||
del config_data
|
||||
del version
|
||||
|
||||
|
||||
def create_plugin() -> HelloWorldPlugin:
|
||||
"""创建 Hello World 示例插件实例。
|
||||
|
||||
Returns:
|
||||
HelloWorldPlugin: 新的示例插件实例。
|
||||
"""
|
||||
|
||||
def create_plugin():
|
||||
return HelloWorldPlugin()
|
||||
|
||||
Reference in New Issue
Block a user