插件类的成员
约 654 字大约 2 分钟
2025-02-08
加载和卸载钩子
插件加载
NcatBot
提供 on_load
异步方法, 重写 on_load
方法可以在在插件加载时执行一些任务。
一般来说, 以下工作需要你在插件加载时完成:
class MyPlugin(BasePlugin):
name = "MyPlugin"
version = "1.0.0"
dependencies = {}
async def on_load(self):
print(f"插件 {self.name} 加载成功")
async def on_close(self):
print(f"插件 {self.name} 卸载成功")
插件卸载
BasePlugin
提供 on_close
方法, 重写 _close_
方法可以在在插件卸载时执行一些任务.
一般来说, 以下工作需要你在插件卸载时完成:
- 其它你自定义的需要在加载时初始化的任务(对应
on_load
方法中的自定义任务).
提示
还提供 _init_
, _close_
两个同步方法,你可以根据需要使用。
BotAPI
NcatBotPlugin
有一个 api
成员变量, 该成员变量持有 BotAPI
对象的引用, 用于调用 NcatBot 的各种 API.
class MyPlugin(NcatBotPlugin):
async def on_load(self):
await self.api.post_group_msg(123456789, text="Hello, world!")
获取其它插件的信息
list_plugins
NcatBotPlugin
提供 list_plugins
方法, 该方法返回一个包含所有已加载插件信息的列表。
class NcatBotPlugin(...):
def list_plugins(self, *, obj: bool = False) -> List[Union[str, 'BasePlugin']]:
"""获取插件列表
Args:
obj: 实例模式,如果为 True 则返回插件实例列表, 否则返回插件名称列表.
"""
...
get_plugin
NcatBotPlugin
提供 get_plugin
方法, 该方法返回指定插件的实例。
class NcatBotPlugin(...):
def get_plugin(self, name: str) -> Optional['BasePlugin']:
"""获取指定插件的实例
Args:
name: 插件名称
Returns:
插件实例, 如果插件不存在则返回 None
"""
...
更多
版权所有
版权归属:huan-yp