From 34418ddab5d6eeedc7754f111f5c37a5c2017da9 Mon Sep 17 00:00:00 2001 From: libraryaddict Date: Thu, 22 May 2014 05:26:13 +1200 Subject: [PATCH] Tell them exactly what option they can't use --- .../disguise/utilities/BaseDisguiseCommand.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/me/libraryaddict/disguise/utilities/BaseDisguiseCommand.java b/src/me/libraryaddict/disguise/utilities/BaseDisguiseCommand.java index e7858360..ec1a3073 100644 --- a/src/me/libraryaddict/disguise/utilities/BaseDisguiseCommand.java +++ b/src/me/libraryaddict/disguise/utilities/BaseDisguiseCommand.java @@ -185,7 +185,7 @@ public abstract class BaseDisguiseCommand implements CommandExecutor { if (!allowedDisguises.contains(disguiseType.name().toLowerCase())) { throw new Exception(ChatColor.RED + "You are forbidden to use this disguise!"); } - HashSet usedOptions = new HashSet(); + ArrayList usedOptions = new ArrayList(); Disguise disguise = null; // How many args to skip due to the disugise being constructed int toSkip = 1; @@ -392,7 +392,9 @@ public abstract class BaseDisguiseCommand implements CommandExecutor { if (methodToUse == null) { throw new Exception(ChatColor.RED + "Cannot find the option " + methodName); } - usedOptions.add(methodName.toLowerCase()); + if (!usedOptions.contains(methodName.toLowerCase())) { + usedOptions.add(methodName.toLowerCase()); + } doCheck(optionPermissions, usedOptions); methodToUse.invoke(disguise.getWatcher(), value); } @@ -400,7 +402,7 @@ public abstract class BaseDisguiseCommand implements CommandExecutor { return disguise; } - private void doCheck(HashSet> optionPermissions, HashSet usedOptions) throws Exception { + private void doCheck(HashSet> optionPermissions, ArrayList usedOptions) throws Exception { if (!optionPermissions.isEmpty()) { for (HashSet perms : optionPermissions) { HashSet cloned = (HashSet) perms.clone(); @@ -417,7 +419,7 @@ public abstract class BaseDisguiseCommand implements CommandExecutor { } if (cloned.size() == perms.size() && !cloned.containsAll(usedOptions)) { throw new Exception(ChatColor.RED + "You do not have the permission to use the option " - + usedOptions.toArray(new String[usedOptions.size()])[usedOptions.size() - 1]); + + usedOptions.get(usedOptions.size() - 1)); } } }