mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-10 19:14:46 +08:00
45 lines
1.8 KiB
Kotlin
45 lines
1.8 KiB
Kotlin
/*
|
|
* Copyright 2019-2020 Mamoe Technologies and contributors.
|
|
*
|
|
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
|
* Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE version 3 license that can be found through the following link.
|
|
*
|
|
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
|
*/
|
|
|
|
package net.mamoe.mirai.console.command
|
|
|
|
import net.mamoe.mirai.console.compiler.common.ResolveContext
|
|
import net.mamoe.mirai.console.compiler.common.ResolveContext.Kind.PERMISSION_NAME
|
|
import net.mamoe.mirai.console.permission.Permission
|
|
import net.mamoe.mirai.console.permission.PermissionId
|
|
import net.mamoe.mirai.console.permission.PermissionIdNamespace
|
|
import net.mamoe.mirai.console.plugin.jvm.JvmPlugin
|
|
|
|
/**
|
|
* 指令的所有者.
|
|
*
|
|
* @see CommandManager.unregisterAllCommands 取消注册所有属于一个 [CommandOwner] 的指令
|
|
* @see CommandManager.registeredCommands 获取已经注册了的属于一个 [CommandOwner] 的指令列表.
|
|
*
|
|
* @see JvmPlugin 是一个 [CommandOwner]
|
|
*/
|
|
public interface CommandOwner : PermissionIdNamespace {
|
|
/**
|
|
* 在构造指令时, [Command.permission] 默认会使用 [parentPermission] 作为 [Permission.parent]
|
|
*/
|
|
public val parentPermission: Permission
|
|
}
|
|
|
|
/**
|
|
* 代表控制台所有者. 所有的 mirai-console 内建的指令都属于 [ConsoleCommandOwner].
|
|
*
|
|
* 插件注册指令时不应该使用 [ConsoleCommandOwner].
|
|
*/
|
|
public object ConsoleCommandOwner : CommandOwner {
|
|
public override val parentPermission: Permission get() = BuiltInCommands.parentPermission
|
|
|
|
public override fun permissionId(
|
|
@ResolveContext(PERMISSION_NAME) name: String,
|
|
): PermissionId = PermissionId("console", name)
|
|
} |