Commands with functions

Example

@Plugin
fun KotlinPlugin.onEnable() {
    val commandManager = commandManager()
    commandManager.register(::testCommand)
    commandManager.tabComplete("#test") {
        listOf("Aaa1", "Aaa2")
    }
    
    //Overwrite system message
    commandManager.message("#wrong-usage") {
        it.sendMessage("Wrong usage")
    }
}

//first argument - CommandSender or Player. This is sender of this command
//Use other function params for get a command arguemnts
//Also you can set 2 param to Array<String> for getting all arguments in array
// arg3 - is optional argument
@Command("testCommand")
@TabComplete(["#range:1-100", "#test"])
@Permission("test.use")
@Aliases(["test2"])
@Usage("#wrong-usage")
fun testCommand(sender: Sender, arg1: Int, arg2: String, @Optional arg3: String?) {
    sender.sendMessage("test")
    sender.sendMessage("arg1 = $arg1, arg2 = $arg2")
    //if args has 3 argument
    if (arg3 != null) {
        sender.sendMessage(arg3)
    }
    
}

Last updated