diff --git a/bukkit/src/main/java/co/aikar/commands/BukkitCommandContexts.java b/bukkit/src/main/java/co/aikar/commands/BukkitCommandContexts.java index 4a6df1e3..8fad9902 100644 --- a/bukkit/src/main/java/co/aikar/commands/BukkitCommandContexts.java +++ b/bukkit/src/main/java/co/aikar/commands/BukkitCommandContexts.java @@ -43,6 +43,8 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; import java.util.stream.Stream; +import static co.aikar.commands.ACFBukkitUtil.isValidName; + @SuppressWarnings("WeakerAccess") public class BukkitCommandContexts extends CommandContexts { @@ -129,11 +131,22 @@ public class BukkitCommandContexts extends CommandContexts { String name = c.popFirstArg(); - UUID uuid = null; + OfflinePlayer offlinePlayer; if (c.hasFlag("uuid")) { - uuid = UUID.fromString(name); + UUID uuid; + try { + uuid = UUID.fromString(name); + } catch (IllegalArgumentException e) { + throw new InvalidCommandArgument(MinecraftMessageKeys.NO_PLAYER_FOUND_OFFLINE, + "{search}", name); + } + offlinePlayer = Bukkit.getOfflinePlayer(uuid); + } else { + if (!isValidName(name)) { + throw new InvalidCommandArgument(MinecraftMessageKeys.IS_NOT_A_VALID_NAME, "{name}", name); + } + offlinePlayer = Bukkit.getOfflinePlayer(name); } - OfflinePlayer offlinePlayer = uuid != null ? Bukkit.getOfflinePlayer(uuid) : Bukkit.getOfflinePlayer(name); if (offlinePlayer == null || (!offlinePlayer.hasPlayedBefore() && !offlinePlayer.isOnline())) { throw new InvalidCommandArgument(MinecraftMessageKeys.NO_PLAYER_FOUND_OFFLINE, "{search}", name);