diff options
author | tylermurphy534 <tylermurphy534@gmail.com> | 2022-10-30 21:40:59 -0400 |
---|---|---|
committer | tylermurphy534 <tylermurphy534@gmail.com> | 2022-10-30 21:40:59 -0400 |
commit | 1325e042a6e7af37669bcd32e9d7a133f2ae22e6 (patch) | |
tree | e6703c90dcdbefac6954a1f2023b78892c0dc788 /src/main/java/net/tylermurphy/hideAndSeek/util | |
parent | start adding multi map support (diff) | |
download | kenshinshideandseek-1325e042a6e7af37669bcd32e9d7a133f2ae22e6.tar.gz kenshinshideandseek-1325e042a6e7af37669bcd32e9d7a133f2ae22e6.tar.bz2 kenshinshideandseek-1325e042a6e7af37669bcd32e9d7a133f2ae22e6.zip |
finish beta build of multi map support
Diffstat (limited to '')
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/util/CommandHandler.java | 14 | ||||
-rw-r--r-- | src/main/java/net/tylermurphy/hideAndSeek/util/TabCompleter.java | 20 |
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; |