Package net.mamoe.mirai.console.command

Types

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

Command 的基础实现

AbstractCommandSender
Link copied to clipboard
sealed class AbstractCommandSender : CommandSender, CoroutineScope

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

AbstractUserCommandSender
Link copied to clipboard
sealed class AbstractUserCommandSender : AbstractCommandSender, UserCommandSender
BuiltInCommand
Link copied to clipboard
interface BuiltInCommand : Command
BuiltInCommands
Link copied to clipboard
object BuiltInCommands

内建指令列表

Command
Link copied to clipboard
interface Command

指令

CommandExecuteResult
Link copied to clipboard
sealed class CommandExecuteResult

指令的执行返回

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

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

CommandManager
Link copied to clipboard
interface CommandManager

指令管理器

CommandOwner
Link copied to clipboard
interface CommandOwner : PermissionIdNamespace

指令的所有者.

CommandPermissionDeniedException
Link copied to clipboard
class CommandPermissionDeniedException(commandSender: CommandSender, command: Command) : RuntimeException

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

CommandSender
Link copied to clipboard
interface CommandSender : CoroutineScope, Permittee

指令发送者.

CommandSenderOnMessage
Link copied to clipboard
interface CommandSenderOnMessage<T : MessageEvent> : CommandSender

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

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

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

ConsoleCommandOwner
Link copied to clipboard
object ConsoleCommandOwner : CommandOwner

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

ConsoleCommandSender
Link copied to clipboard
object ConsoleCommandSender : AbstractCommandSender

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

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

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

FriendCommandSenderOnMessage
Link copied to clipboard

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

GroupAwareCommandSender
Link copied to clipboard
interface GroupAwareCommandSender : UserCommandSender

知道 Group 环境的 UserCommandSender

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

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

GroupTempCommandSenderOnMessage
Link copied to clipboard

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

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

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

MemberCommandSender
Link copied to clipboard
open class MemberCommandSender : AbstractUserCommandSender, GroupAwareCommandSender, CoroutineScope

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

MemberCommandSenderOnMessage
Link copied to clipboard

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

OtherClientCommandSender
Link copied to clipboard
open class OtherClientCommandSender : AbstractCommandSender, CoroutineScope

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

OtherClientCommandSenderOnMessage
Link copied to clipboard

代表一个 其他客户端 主动在私聊发送消息执行指令

RawCommand
Link copied to clipboard
abstract class RawCommand(owner: CommandOwner, primaryName: String, secondaryNames: String, usage: String, description: String, parentPermission: Permission, prefixOptional: Boolean) : Command

无参数解析, 接收原生参数的指令.

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

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

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

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

StrangerCommandSenderOnMessage
Link copied to clipboard

代表一个 陌生人 主动在私聊发送消息执行指令

TempCommandSender
Link copied to clipboard
sealed class TempCommandSender : AbstractUserCommandSender, GroupAwareCommandSender, CoroutineScope

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

TempCommandSenderOnMessage
Link copied to clipboard

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

UnmatchedCommandSignature
Link copied to clipboard
UserCommandSender
Link copied to clipboard
interface UserCommandSender : CommandSender

代表一个用户执行指令

Functions

execute
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

执行一个确切的指令

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

解析并执行一个指令

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

折叠 AbstractCommandSender 的可能性.

foldContext
Link copied to clipboard
inline fun <R> UserCommandSender.foldContext(inGroup: MemberCommandSender.() -> R, inPrivate: UserCommandSender.() -> R): R

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

getBotOrNull
Link copied to clipboard
fun CommandSender.getBotOrNull(): Bot?

尝试获取 Group.

getGroupOrNull
Link copied to clipboard
fun CommandSender.getGroupOrNull(): Group?

尝试获取 Group.

isConsole
Link copied to clipboard
fun CommandSender.isConsole(): Boolean

thisConsoleCommandSender 时返回 true

isNotConsole
Link copied to clipboard
fun CommandSender.isNotConsole(): Boolean

this 不为 ConsoleCommandSender 时返回 true

isNotUser
Link copied to clipboard
fun CommandSender.isNotUser(): Boolean

this 不为 UserCommandSender, 即为 ConsoleCommandSender 时返回 true

isSuccess
Link copied to clipboard
isUser
Link copied to clipboard
fun CommandSender.isUser(): Boolean

thisUserCommandSender 时返回 true