Skip to content

创建一个命令

命令是最核心的几个功能之一, 我花了大部分的时间在这个模块中


创建命令的方式有多种, 你可以选择你喜欢的方式来创建你的指令

继承父类创建指令

这种方法创建的指令通常需要创建一个类来作为一个指令, 然后将其手动注册, 些许麻烦

kotlin
class MyCommand : BaseCommand() {
    // 这里只能在群聊中执行
    override val type: List<ExecuteType> = listOf(BaseCommand.ExecuteType.Group)

    // 设置一个或者多个指令别名
    override val commandNames: List<String> = listOf("/echo", "/ohce")

    override suspend fun onExecute(
        message: ReceiveMessage,
        type: ExecuteType,
        args: List<String>,
    ) {
        // 这里就是指令执行的逻辑了
    }
}

lambda式

这种方法创建出来的指令非常简短非常适合懒人(

kotlin
// 不设置可以在哪种情景的聊天执行, 则默认为全部聊天情景都可以执行
// 群聊, 私聊, 临时聊天
createCommand("/hello") {
    println("Hello world")
}.register()

Java使用者

ROB为Java使用者开发了lambda式的指令创建

java
public class TestJava {
    public static void main(String[] args) {
        CommandUtil.createCommand("hello", request ->
                System.out.println(request.getMessage())
        ).register();
    }
}

以Apache-2.0开源协议开源