mirror of
https://github.com/nonebot/nonebot2.git
synced 2024-12-01 01:25:07 +08:00
📝 update export-and-require and permission docs
This commit is contained in:
parent
994b99e462
commit
86aa3ef2e8
@ -7,12 +7,14 @@ options:
|
|||||||
|
|
||||||
# 跨插件访问
|
# 跨插件访问
|
||||||
|
|
||||||
由于 `nonebot2` 独特的插件加载机制,在使用 python 原有的 import 机制来进行插件之间的访问时,很可能会有奇怪的或者意料以外的情况发生。为了避免这种情况的发生,您可以有两种方法来实现跨插件访问:
|
由于 `nonebot2` 独特的插件加载机制,直接使用 python 原有的 import 机制来进行插件之间的访问时,很可能会有奇怪的或者意料以外的情况发生。为了避免这种情况的发生,您可以有如下方法来实现跨插件访问:
|
||||||
|
|
||||||
1. 将插件间的要使用的公共代码剥离出来,作为公共文件或者文件夹,提供给插件加以调用。
|
1. 将插件间的要使用的公共代码剥离出来,作为公共文件或者文件夹,提供给插件加以调用。
|
||||||
2. 使用 `nonebot2` 提供的 `export` 和 `require` 机制,来实现插件间的互相调用。
|
2. 使用 `nonebot2` 提供的 `export` 和 `require` 机制,来实现插件间的互相调用。
|
||||||
|
3. 在保证插件被加载的情况下,可以采用 `import` 来访问。
|
||||||
|
|
||||||
第一种方法比较容易理解和实现,这里不再赘述,但需要注意的是,请不要将公共文件或者公共文件夹作为**插件**被 `nonebot2` 加载。
|
第一种方法比较容易理解和实现,这里不再赘述,但需要注意的是,请不要将公共文件或者公共文件夹作为**插件**被 `nonebot2` 加载。
|
||||||
|
第三种方法需要保证插件被加载,插件加载的方式可以参阅 [加载插件](../tutorial/plugin/load-plugin) 。
|
||||||
|
|
||||||
下面将介绍第二种方法—— `export` 和 `require` 机制:
|
下面将介绍第二种方法—— `export` 和 `require` 机制:
|
||||||
|
|
||||||
|
@ -41,13 +41,13 @@ async def _(bot: Bot, event: Event):
|
|||||||
|
|
||||||
## 进阶
|
## 进阶
|
||||||
|
|
||||||
`Permission` 除了可以在注册事件响应器时加以应用,还可以在编写事件处理函数 `handler` 时主动调用,我们可以利用这个特性在一个 `handler` 里对不同权限的事件主体进行区别响应,下面我们以 `CQHTTP` 中的 `GROUP_ADMIN` (普通管理员非群主)和 `GROUP_OWNER` 为例,说明下怎么进行主动调用。
|
`Permission` 除了可以在注册事件响应器时加以应用,还可以在编写事件处理函数 `handler` 时主动调用,我们可以利用这个特性在一个 `handler` 里对不同权限的事件主体进行区别响应,下面我们以 `onebot` 中的 `GROUP_ADMIN` (普通管理员非群主)和 `GROUP_OWNER` 为例,说明下怎么进行主动调用。
|
||||||
|
|
||||||
```python
|
```python
|
||||||
from nonebot import on_command
|
from nonebot import on_command
|
||||||
from nonebot.adapters.cqhttp import Bot
|
from nonebot.adapters.onebot.v11 import Bot
|
||||||
from nonebot.adapters.cqhttp import GroupMessageEvent
|
from nonebot.adapters.onebot.v11 import GroupMessageEvent
|
||||||
from nonebot.adapters.cqhttp import GROUP_ADMIN, GROUP_OWNER
|
from nonebot.adapters.onebot.v11 import GROUP_ADMIN, GROUP_OWNER
|
||||||
|
|
||||||
matcher = on_command("测试权限")
|
matcher = on_command("测试权限")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user