diff --git a/src/main/java/com/massivecraft/massivecore/cmd/MassiveCommand.java b/src/main/java/com/massivecraft/massivecore/cmd/MassiveCommand.java index 0589329f..56e74efb 100644 --- a/src/main/java/com/massivecraft/massivecore/cmd/MassiveCommand.java +++ b/src/main/java/com/massivecraft/massivecore/cmd/MassiveCommand.java @@ -96,6 +96,21 @@ public class MassiveCommand public List getSubCommands() { return this.subCommands; } public void setSubCommands(List subCommands) { this.subCommands = subCommands; } + public MassiveCommand getSubCommand(String alias) + { + for (MassiveCommand subCommand: this.getSubCommands()) + { + for (String subAlias : subCommand.getAliases()) + { + if (alias.equalsIgnoreCase(subAlias)) + { + return subCommand; + } + } + } + return null; + } + public void addSubCommand(MassiveCommand subCommand) { this.addSubCommand(subCommand, this.subCommands.size()); @@ -295,18 +310,13 @@ public class MassiveCommand // Is there a matching sub command? if (args.size() > 0) { - for (MassiveCommand subCommand: this.getSubCommands()) + MassiveCommand subCommand = this.getSubCommand(args.get(0)); + if (subCommand != null) { - for (String alias : subCommand.getAliases()) - { - if (args.get(0).equalsIgnoreCase(alias)) - { - args.remove(0); - commandChain.add(this); - subCommand.execute(sender, args, commandChain); - return; - } - } + args.remove(0); + commandChain.add(this); + subCommand.execute(sender, args, commandChain); + return; } } diff --git a/src/main/java/com/massivecraft/massivecore/cmd/MassiveCoreBukkitCommand.java b/src/main/java/com/massivecraft/massivecore/cmd/MassiveCoreBukkitCommand.java index dffc8615..bb77c77f 100644 --- a/src/main/java/com/massivecraft/massivecore/cmd/MassiveCoreBukkitCommand.java +++ b/src/main/java/com/massivecraft/massivecore/cmd/MassiveCoreBukkitCommand.java @@ -56,29 +56,33 @@ public class MassiveCoreBukkitCommand extends Command implements PluginIdentifia @Override public boolean execute(CommandSender sender, String commandLabel, String[] args) { - List argList; + List argList = this.createArgList(args); + this.massiveCommand.execute(sender, argList); + return true; + } + + public List createArgList(String[] args) + { + List ret; if (this.massiveCommand.isUsingTokenizer()) { - argList = Txt.tokenizeArguments(Txt.implode(args, " ")); + ret = Txt.tokenizeArguments(Txt.implode(args, " ")); } else { - argList = new ArrayList(Arrays.asList(args)); + ret = new ArrayList(Arrays.asList(args)); } if (this.massiveCommand.isUsingSmartQuotesRemoval()) { - List oldArgList = argList; - argList = new ArrayList(); + List oldArgList = ret; + ret = new ArrayList(); for (String arg : oldArgList) { - argList.add(Txt.removeSmartQuotes(arg)); + ret.add(Txt.removeSmartQuotes(arg)); } } - - this.massiveCommand.execute(sender, argList); - - return true; + return ret; } // -------------------------------------------- //