Package-level declarations

Types

Link copied to clipboard
abstract class AbstractCommand @JvmOverloads constructor(val owner: CommandOwner, val primaryName: String, val secondaryNames: Array<out String>, val description: String = "<no description available>", parentPermission: Permission = owner.parentPermission) : Command

Command 的基础实现

Link copied to clipboard
sealed class AbstractCommandSender : CommandSender, CoroutineScope

所有 CommandSender 都必须继承自此对象.

Link copied to clipboard
Link copied to clipboard

内建指令列表

Link copied to clipboard
interface Command

指令

Link copied to clipboard

指令执行环境

Link copied to clipboard

指令的执行返回

Link copied to clipboard
class CommandExecutionException(val sender: CommandSender, val command: Command, val name: String, cause: Throwable) : RuntimeException

CommandManager.executeCommand 中抛出异常时包装的异常.

Link copied to clipboard
interface CommandManager

指令管理器

Link copied to clipboard

指令的所有者. JvmPlugin 是一个 CommandOwner.

Link copied to clipboard

CommandManager.executeCommand 中, CommandSender 未拥有 Command.permission 所要求的权限时抛出的异常.

Link copied to clipboard
interface CommandSender : CoroutineScope, Permittee

指令发送者.

Link copied to clipboard

代表一个真实 用户 主动私聊机器人或在群内发送消息而执行指令

Link copied to clipboard
abstract class CompositeCommand(owner: CommandOwner, primaryName: String, secondaryNames: String, description: String = "no description available", parentPermission: Permission = owner.parentPermission, overrideContext: CommandArgumentContext = EmptyCommandArgumentContext) : AbstractCommand, Command, CommandArgumentContextAware

复合指令. 指令注册时候会通过反射构造指令解析器.

Link copied to clipboard

代表控制台所有者. 所有的 mirai-console 内建的指令都属于 ConsoleCommandOwner.

Link copied to clipboard

控制台指令执行者. 代表由控制台执行指令

Link copied to clipboard
Link copied to clipboard
open class FriendCommandSender : AbstractUserCommandSender, CoroutineScope

代表一个 好友 执行指令, 但不一定是通过私聊方式, 也有可能是由插件在代码直接执行 (CommandManager.executeCommand)

Link copied to clipboard

代表一个真实的 好友 主动在私聊消息执行指令

Link copied to clipboard
Link copied to clipboard
open class GroupTempCommandSender : TempCommandSender, CoroutineScope

代表一个 群员 通过临时会话执行指令, 但不一定是通过私聊方式, 也有可能是由插件在代码直接执行 (CommandManager.executeCommand)

Link copied to clipboard

代表一个 群员 主动在临时会话发送消息执行指令

Link copied to clipboard
open class IllegalCommandArgumentException @JvmOverloads constructor(message: String, cause: Throwable? = null) : IllegalArgumentException

在处理参数时遇到的 正常 错误. 如参数不符合规范, 参数值越界等.

Link copied to clipboard

代表一个 群员 执行指令, 但不一定是通过群内发消息方式, 也有可能是由插件在代码直接执行 (CommandManager.executeCommand)

Link copied to clipboard

代表一个真实的 群员 主动在群内发送消息执行指令.

Link copied to clipboard
open class OtherClientCommandSender : AbstractCommandSender, CoroutineScope

代表一个 其他客户端 通过私聊执行指令, 但不一定是通过私聊方式, 也有可能是由插件在代码直接执行 (CommandManager.executeCommand)

Link copied to clipboard

代表一个 其他客户端 主动在群内、好友聊天等发送消息执行指令

Link copied to clipboard

一个来自插件自行实现的 CommandSender.

Link copied to clipboard
abstract class RawCommand(val owner: CommandOwner, val primaryName: String, val secondaryNames: String, val usage: String = "<no usages given>", val description: String = "<no descriptions given>", parentPermission: Permission = owner.parentPermission, val prefixOptional: Boolean = false) : Command

无参数解析, 只会接收原消息链的指令. Java 查看 JRawCommand.

Link copied to clipboard
abstract class SimpleCommand(owner: CommandOwner, primaryName: String, secondaryNames: String, description: String = "no description available", parentPermission: Permission = owner.parentPermission, overrideContext: CommandArgumentContext = EmptyCommandArgumentContext) : AbstractCommand, Command, CommandArgumentContextAware

简单的, 支持参数自动解析的指令.

Link copied to clipboard

代表一个 陌生人 通过私聊执行指令, 但不一定是通过私聊方式, 也有可能是由插件在代码直接执行 (CommandManager.executeCommand)

Link copied to clipboard
Link copied to clipboard

一个来自内部系统的命令执行者.

Link copied to clipboard
Link copied to clipboard

代表一个用户执行指令

Functions

Link copied to clipboard
inline suspend fun Command.execute(sender: CommandSender, vararg arguments: Message = emptyArray(), checkPermission: Boolean = true): CommandExecuteResult
inline suspend fun Command.execute(sender: CommandSender, arguments: String = "", checkPermission: Boolean = true): CommandExecuteResult

执行一个确切的指令

Link copied to clipboard
inline suspend fun CommandSender.executeCommand(message: String, checkPermission: Boolean = true): CommandExecuteResult

解析并执行一个指令

Link copied to clipboard
inline fun <R> CommandSender.fold(ifIsSystem: SystemCommandSender.() -> R, ifIsUser: UserCommandSender.() -> R, otherwise: CommandSender.() -> R = { error("CommandSender ${this::class.qualifiedName} is not supported") }): R

折叠 CommandSender 的可能性.

Link copied to clipboard

折叠 UserCommandSender 的两种可能性, 即在群内发送或在私聊环境发送.

Link copied to clipboard

尝试获取 Bot.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

thisUserCommandSender 时返回 true