Skip to main content
Version: 2.4.0

nonebot.permission

本模块是 Matcher.permission 的类型定义。

每个事件响应器 拥有一个 Permission,其中是 PermissionChecker 的集合。 只要有一个 PermissionChecker 检查结果为 True 时就会继续运行。

def USER(*users, perm=None)

  • 说明

    匹配当前事件属于指定会话。

    如果 perm 中仅有 User 类型的权限检查函数,则会去除原有检查函数的会话 ID 限制。

  • 参数

    • *users (str)

    • perm (Permission | None): 需要同时满足的权限

    • user: 会话白名单

  • 返回

    • untyped

class User(users, perm=None)

  • 说明: 检查当前事件是否属于指定会话。

  • 参数

    • users (tuple[str, ...]): 会话 ID 元组

    • perm (Permission | None): 需同时满足的权限

classmethod from_event(event, perm=None)

  • 说明

    从事件中获取会话 ID。

    如果 perm 中仅有 User 类型的权限检查函数,则会去除原有的会话 ID 限制。

  • 参数

    • event (Event): Event 对象

    • perm (Permission | None): 需同时满足的权限

  • 返回

    • Self

classmethod from_permission(*users, perm=None)

  • 说明

    指定会话与权限。

    如果 perm 中仅有 User 类型的权限检查函数,则会去除原有的会话 ID 限制。

  • 参数

    • *users (str): 会话白名单

    • perm (Permission | None): 需同时满足的权限

  • 返回

    • Self

class Permission(*checkers)

  • 说明

    权限类。

    当事件传递时,在 Matcher 运行前进行检查。

  • 参数

  • 用法

    Permission(async_function) | sync_function
    # 等价于
    Permission(async_function, sync_function)

instance-var checkers

  • 类型: set[Dependent[bool]]

  • 说明: 存储 PermissionChecker

async method __call__(bot, event, stack=None, dependency_cache=None)

  • 说明: 检查是否满足某个权限。

  • 参数

    • bot (Bot): Bot 对象

    • event (Event): Event 对象

    • stack (AsyncExitStack | None): 异步上下文栈

    • dependency_cache (T_DependencyCache | None): 依赖缓存

  • 返回

    • bool

class Message(<auto>)

  • 说明: 检查是否为消息事件

  • 参数

    auto

class Notice(<auto>)

  • 说明: 检查是否为通知事件

  • 参数

    auto

class Request(<auto>)

  • 说明: 检查是否为请求事件

  • 参数

    auto

class MetaEvent(<auto>)

  • 说明: 检查是否为元事件

  • 参数

    auto

var MESSAGE

  • 类型: Permission

  • 说明

    匹配任意 message 类型事件

    仅在需要同时捕获不同类型事件时使用,优先使用 message type 的 Matcher。

var NOTICE

  • 类型: Permission

  • 说明

    匹配任意 notice 类型事件

    仅在需要同时捕获不同类型事件时使用,优先使用 notice type 的 Matcher。

var REQUEST

  • 类型: Permission

  • 说明

    匹配任意 request 类型事件

    仅在需要同时捕获不同类型事件时使用,优先使用 request type 的 Matcher。

var METAEVENT

  • 类型: Permission

  • 说明

    匹配任意 meta_event 类型事件

    仅在需要同时捕获不同类型事件时使用,优先使用 meta_event type 的 Matcher。

class SuperUser(<auto>)

  • 说明: 检查当前事件是否是消息事件且属于超级管理员

  • 参数

    auto

var SUPERUSER

  • 类型: Permission

  • 说明: 匹配任意超级用户事件