From cd6bf023f638a1ad8efe70c3ba892b6769812368 Mon Sep 17 00:00:00 2001 From: Bukkit/Spigot Date: Sun, 9 Feb 2014 23:16:19 -0600 Subject: [PATCH] Clean up alias handling. There is no need to print a stacktrace when an alias fails, we do not do this for normal commands. We also now give error messages when attempting to register an alias instead of having them just silently not function. By: Travis Watkins --- .../org/bukkit/command/FormattedCommandAlias.java | 1 - .../java/org/bukkit/command/SimpleCommandMap.java | 14 ++++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/paper-api/src/main/java/org/bukkit/command/FormattedCommandAlias.java b/paper-api/src/main/java/org/bukkit/command/FormattedCommandAlias.java index 84199292d..40de5e2f5 100644 --- a/paper-api/src/main/java/org/bukkit/command/FormattedCommandAlias.java +++ b/paper-api/src/main/java/org/bukkit/command/FormattedCommandAlias.java @@ -48,7 +48,6 @@ public class FormattedCommandAlias extends Command { } else { sender.sendMessage(org.bukkit.ChatColor.RED + "An internal error occurred while attempting to perform this command"); } - Bukkit.getLogger().log(Level.WARNING, "Failed to parse command alias " + commandLabel + ": " + formatString, throwable); return false; } } diff --git a/paper-api/src/main/java/org/bukkit/command/SimpleCommandMap.java b/paper-api/src/main/java/org/bukkit/command/SimpleCommandMap.java index 3f651de31..4bf79988e 100644 --- a/paper-api/src/main/java/org/bukkit/command/SimpleCommandMap.java +++ b/paper-api/src/main/java/org/bukkit/command/SimpleCommandMap.java @@ -257,6 +257,11 @@ public class SimpleCommandMap implements CommandMap { Map values = server.getCommandAliases(); for (String alias : values.keySet()) { + if (alias.contains(":") || alias.contains(" ")) { + server.getLogger().warning("Could not register alias " + alias + " because it contains illegal characters"); + continue; + } + String[] commandStrings = values.get(alias); List targets = new ArrayList(); StringBuilder bad = new StringBuilder(); @@ -275,16 +280,17 @@ public class SimpleCommandMap implements CommandMap { } } + if (bad.length() > 0) { + server.getLogger().warning("Could not register alias " + alias + " because it contains commands that do not exist: " + bad); + continue; + } + // We register these as commands so they have absolute priority. if (targets.size() > 0) { knownCommands.put(alias.toLowerCase(), new FormattedCommandAlias(alias.toLowerCase(), targets.toArray(new String[targets.size()]))); } else { knownCommands.remove(alias.toLowerCase()); } - - if (bad.length() > 0) { - server.getLogger().warning("The following command(s) could not be aliased under '" + alias + "' because they do not exist: " + bad); - } } } }