mirai/docs/Commands.md
2020-09-04 11:44:12 +08:00

5.9 KiB

Mirai Console Backend - Commands

Command

「指令」:目前通常是 "/commandName arg1 arg2 arg3" 格式的消息。在将来可能会被扩展

interface Command {
    val names: Array<out String>
    val usage: String
    val description: String
    val permission: CommandPermission
    val prefixOptional: Boolean
    val owner: CommandOwner
    suspend fun CommandSender.onCommand(args: MessageChain)
}

每一条指令都被抽象成 Command

执行指令

指令既可以在代码执行,也可以在消息环境中执行。

CommandManager 执行指令

通过扩展:

  • suspend fun Command.execute(CommandSender, args: Message, checkPermission: Boolean=true)
  • suspend fun Command.execute(CommandSender, args: String, checkPermission: Boolean=true)
  • suspend fun CommandSender.executeCommand(message: Message, checkPermission: Boolean=true)
  • suspend fun CommandSender.executeCommand(message: String, checkPermission: Boolean=true)

指令参数

指令的参数允许 SingleMessage,即包含 At, Image, PlainText 等。

RawCommand

CommandManager

上面已经提到可以在 CommandManager 执行指令。CommandManager 持有已经注册的指令列表,源码内有详细注释,此处不过多赘述。

CommandSender

指令发送者。

必要性

Contact