Skip to content

东西要分类好

在正式编写涩涩插件之前,我们需要先了解一下插件的概念。

插件结构

在 NoneBot 中,插件就是一个 模块(module)。NoneBot 会在导入时对这些模块做一些特殊的处理使得他们成为一个插件。插件间应尽量减少耦合,可以进行有限制的相互调用,NoneBot 能够正确解析插件间的依赖关系。

单文件插件

一个普通的 .py 文件即可以作为一个插件,例如创建一个 foo.py 文件:

txt
📂 plugins
└── 📜 foo.py

这个时候模块 foo 已经可以被称为一个插件了 尽管它还什么都没做。

包插件

一个包含 __init__.py 的文件夹即是一个常规 Python 包(package),例如创建一个 foo 文件夹:

txt
📂 plugins
└── 📂 foo
    └── 📜 __init__.py

这个时候包 foo 同样是一个合法却没用的插件,插件内容可以在 __init__.py 文件中编写。

配置结构

当我们使用 nb-cli 创建了一个 Hibiscus 后,我们可以在 pyproject.toml 中找到有关 NoneBot 的配置

toml

[tool.nonebot]
adapters = [
    { name = "OneBot V11", module_name = "nonebot.adapters.onebot.v11" },
    { name = "Console", module_name = "nonebot.adapters.console" }
]
# 适配器加载列表

plugins = []
# 加载的插件列表(一般是安装的第三方插件)

plugin_dirs = ["hibiscus/plugins"]
# 插件加载目录列表(自动搜索指定目录下的插件,不会主动递归查找子目录)

builtin_plugins = ["echo"]
# 内置插件列表

MIT License