Permission

interface Permission

一个抽象的「权限」. 由 PermissionService 实现不同, Permission 可能会有多种实例. 但一个权限总是拥有确定的 id.

在匹配权限时, 应使用唯一的 id 作为依据. 而不应该使用 Permission 实例. 同时, Permission 也不适合存储.

注意: 请不要手动实现这个接口. 总是从 PermissionService.register 获得实例.

获取 Permission

根权限

RootPermission 是所有权限的父权限.

指令的权限

每个指令都拥有一个 Command.permission.

BuiltInCommands.parentPermission 为所有内建指令的权限.

手动申请权限

PermissionService.register

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard
abstract val description: String

描述信息. 描述信息在注册权限时强制提供.

Link copied to clipboard
abstract val id: PermissionId

唯一识别 ID. 所有权限的 id 都互不相同.

Link copied to clipboard
abstract val parent: Permission

父权限.

Extensions

Link copied to clipboard
val Permission.parentsWithSelf: Sequence<Permission>

递归获取 Permission.parent, permission.parent.parent, permission.parent.parent.parent` ... 直到 Permission.parent 为它自己.

Link copied to clipboard
fun Permission.testPermission(permittee: Permittee): Boolean
fun Permission.testPermission(permitteeId: PermitteeId): Boolean