summaryrefslogtreewikicommitdiff
path: root/src/main/java/net/tylermurphy/hideAndSeek/util
diff options
context:
space:
mode:
authortylermurphy534 <tylermurphy534@gmail.com>2022-10-30 21:40:59 -0400
committertylermurphy534 <tylermurphy534@gmail.com>2022-10-30 21:40:59 -0400
commit1325e042a6e7af37669bcd32e9d7a133f2ae22e6 (patch)
treee6703c90dcdbefac6954a1f2023b78892c0dc788 /src/main/java/net/tylermurphy/hideAndSeek/util
parentstart adding multi map support (diff)
downloadkenshinshideandseek-1325e042a6e7af37669bcd32e9d7a133f2ae22e6.tar.gz
kenshinshideandseek-1325e042a6e7af37669bcd32e9d7a133f2ae22e6.tar.bz2
kenshinshideandseek-1325e042a6e7af37669bcd32e9d7a133f2ae22e6.zip
finish beta build of multi map support
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/util')
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java14
-rw-r--r--src/main/java/net/tylermurphy/hideAndSeek/util/TabCompleter.java20
2 files changed, 23 insertions, 11 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java
index 2dda402..3b0f1b4 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java
@@ -30,6 +30,7 @@ import org.bukkit.entity.Player;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.stream.Collectors;
import static net.tylermurphy.hideAndSeek.configuration.Config.errorPrefix;
import static net.tylermurphy.hideAndSeek.configuration.Config.permissionsRequired;
@@ -65,6 +66,10 @@ public class CommandHandler {
registerCommand(new Top());
registerCommand(new Wins());
registerCommand(new Debug());
+ registerCommand(new AddMap());
+ registerCommand(new RemoveMap());
+ registerCommand(new ListMaps());
+ registerCommand(new SetMap());
}
public static boolean handleCommand(CommandSender sender, String[] args) {
@@ -85,8 +90,15 @@ public class CommandHandler {
} else if (permissionsRequired && !sender.hasPermission("hideandseek."+args[0].toLowerCase())) {
sender.sendMessage(errorPrefix + message("COMMAND_NOT_ALLOWED"));
} else {
+
try {
- COMMAND_REGISTER.get(args[0].toLowerCase()).execute(player,Arrays.copyOfRange(args, 1, args.length));
+ ICommand command = COMMAND_REGISTER.get(args[0].toLowerCase());
+ int parameters = (int) Arrays.stream(command.getUsage().split(" ")).filter(p -> p.startsWith("<") && !p.startsWith("<*")).count();
+ if(args.length - 1 < parameters) {
+ sender.sendMessage(errorPrefix + message("ARGUMENT_COUNT"));
+ return true;
+ }
+ command.execute(player,Arrays.copyOfRange(args, 1, args.length));
} catch (Exception e) {
sender.sendMessage(errorPrefix + "An error has occurred.");
e.printStackTrace();
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/util/TabCompleter.java b/src/main/java/net/tylermurphy/hideAndSeek/util/TabCompleter.java
index 2605e7b..28154d1 100644
--- a/src/main/java/net/tylermurphy/hideAndSeek/util/TabCompleter.java
+++ b/src/main/java/net/tylermurphy/hideAndSeek/util/TabCompleter.java
@@ -19,6 +19,7 @@
package net.tylermurphy.hideAndSeek.util;
+import net.tylermurphy.hideAndSeek.command.ICommand;
import org.bukkit.command.CommandSender;
import java.util.ArrayList;
@@ -36,21 +37,20 @@ public class TabCompleter {
.collect(Collectors.toList());
} else if (args.length > 1) {
if (!CommandHandler.COMMAND_REGISTER.containsKey(args[0].toLowerCase())) {
- return null;
+ return new ArrayList<>();
} else {
- String[] usage = CommandHandler.COMMAND_REGISTER.get(args[0].toLowerCase()).getUsage().split(" ");
+ ICommand command = CommandHandler.COMMAND_REGISTER.get(args[0].toLowerCase());
+ String[] usage = command.getUsage().split(" ");
+ List<String> complete;
if (args.length - 2 < usage.length) {
String parameter = usage[args.length-2];
- if (parameter.equals("<player>")) {
- return null;
- } else {
- List<String> temp = new ArrayList<>();
- temp.add(parameter.replace("<", "").replace(">", ""));
- return temp;
- }
+ String name = parameter.replace("<", "").replace(">", "");
+ complete = command.autoComplete(name);
} else {
- return null;
+ complete = command.autoComplete(null);
}
+ if(complete == null) return new ArrayList<>();
+ else return complete;
}
}
return null;