From 06956a7a2d049e56173a96be14c0794306959f91 Mon Sep 17 00:00:00 2001 From: dfsek Date: Wed, 10 Mar 2021 03:20:34 -0700 Subject: [PATCH] fix command NPEs on invalid IDs --- .../java/com/dfsek/terra/api/command/TerraCommandManager.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common/src/main/java/com/dfsek/terra/api/command/TerraCommandManager.java b/common/src/main/java/com/dfsek/terra/api/command/TerraCommandManager.java index 0a89fdd15..b12f4ea78 100644 --- a/common/src/main/java/com/dfsek/terra/api/command/TerraCommandManager.java +++ b/common/src/main/java/com/dfsek/terra/api/command/TerraCommandManager.java @@ -48,6 +48,7 @@ public class TerraCommandManager implements CommandManager { @Override public void execute(String commandName, CommandSender sender, List argsIn) throws CommandException { + if(!commands.containsKey(commandName)) throw new InvalidArgumentsException("No such command \"" + commandName + "\""); execute(commands.get(commandName), sender, new ArrayList<>(argsIn)); } @@ -190,6 +191,7 @@ public class TerraCommandManager implements CommandManager { @Override public List tabComplete(String command, CommandSender sender, List args) throws CommandException { if(args.isEmpty()) return new ArrayList<>(commands.keySet()).stream().sorted(String::compareTo).collect(Collectors.toList()); + if(!commands.containsKey(command)) return Collections.emptyList(); return tabComplete(commands.get(command), sender, new ArrayList<>(args)).stream().filter(s -> s.toLowerCase().startsWith(args.get(args.size() - 1).toLowerCase())).sorted(String::compareTo).collect(Collectors.toList()); }