aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/moe/nea/caelo/CaeloCommand.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/moe/nea/caelo/CaeloCommand.kt')
-rw-r--r--src/main/java/moe/nea/caelo/CaeloCommand.kt54
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