diff options
Diffstat (limited to 'src/main/java/moe/nea/caelo/CaeloCommand.kt')
-rw-r--r-- | src/main/java/moe/nea/caelo/CaeloCommand.kt | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/main/java/moe/nea/caelo/CaeloCommand.kt b/src/main/java/moe/nea/caelo/CaeloCommand.kt new file mode 100644 index 0000000..b5a1688 --- /dev/null +++ b/src/main/java/moe/nea/caelo/CaeloCommand.kt @@ -0,0 +1,54 @@ +package moe.nea.caelo + +import moe.nea.caelo.util.MC +import net.minecraft.command.CommandBase +import net.minecraft.command.ICommandSender +import net.minecraft.util.BlockPos + +object CaeloCommand : CommandBase() { + override fun getCommandName(): String { + return "veloxcaelo" + } + + override fun getCommandAliases(): List<String> { + return listOf("velox") + } + + override fun canCommandSenderUseCommand(sender: ICommandSender?): Boolean { + return true + } + + override fun getCommandUsage(sender: ICommandSender?): String { + return "" + } + + override fun addTabCompletionOptions( + sender: ICommandSender?, + args: Array<out String>, + pos: BlockPos? + ): List<String> { + if (args.size == 1) { + return getListOfStringsMatchingLastWord(args, subcommands.keys) + } + return emptyList() + } + + private val subcommands = mutableMapOf<String, (args: Array<String>) -> Unit>() + + fun subcommand(name: String, function: (args: Array<String>) -> Unit) { + subcommands[name] = function + } + + override fun processCommand(iCommandSender: ICommandSender?, args: Array<String>) { + if (args.isEmpty()) { + MC.display("§cMissing subcommand. Check the tab completions.") + return + } + val subCommand = subcommands[args[0]] + if (subCommand == null) { + MC.display("§cInvalid subcommand. Check the tab completions.") + return + } + subCommand.invoke(args) + } +}
\ No newline at end of file |