forked from mttu-developers/konabot
49 lines
1.6 KiB
Plaintext
49 lines
1.6 KiB
Plaintext
# 指令介绍
|
||
|
||
`is_admin` - 用于判断当前事件是否来自管理员的内部权限校验函数
|
||
|
||
# 格式
|
||
|
||
```python
|
||
from konabot.common.nb.is_admin import is_admin
|
||
from nonebot import on
|
||
from nonebot.adapters import Event
|
||
from loguru import logger
|
||
|
||
@on().handle()
|
||
async def _(event: Event):
|
||
if is_admin(event):
|
||
logger.info("管理员发送了消息")
|
||
```
|
||
|
||
# 说明
|
||
|
||
is_admin 是 Bot 内部用于权限控制的核心函数,根据事件来源(QQ、Discord、控制台)及插件配置,判断触发事件的用户或群组是否具有管理员权限。
|
||
|
||
支持的适配器与判定逻辑:
|
||
|
||
- OneBot V11(QQ)
|
||
- 若用户 ID 在配置项 admin_qq_account 中,则视为管理员
|
||
- 若为群聊消息,且群 ID 在配置项 admin_qq_group 中,则视为管理员
|
||
- Discord
|
||
- 若频道 ID 在配置项 admin_discord_channel 中,则视为管理员
|
||
- 若用户 ID 在配置项 admin_discord_account 中,则视为管理员
|
||
- Console(控制台)
|
||
- 所有控制台输入均默认视为管理员操作,自动返回 True
|
||
|
||
# 配置项(位于插件配置中)
|
||
|
||
- `ADMIN_QQ_GROUP`: `list[int]`
|
||
- 允许的管理员 QQ 群 ID 列表
|
||
- `ADMIN_QQ_ACCOUNT`: `list[int]`
|
||
- 允许的管理员 QQ 账号 ID 列表
|
||
- `ADMIN_DISCORD_CHANNEL`: `list[int]`
|
||
- 允许的管理员 Discord 频道 ID 列表
|
||
- `ADMIN_DISCORD_ACCOUNT`: `list[int]`
|
||
- 允许的管理员 Discord 用户 ID 列表
|
||
|
||
# 注意事项
|
||
|
||
- 若未在配置文件中设置任何管理员 ID,该函数对所有非控制台事件返回 False
|
||
- 控制台事件始终拥有管理员权限,便于本地调试与运维
|