Fixed incorrect help messages for nested commands.

This commit is contained in:
sk89q 2011-02-18 00:09:07 -08:00
parent ee4c1141c5
commit dfc7d074bd
2 changed files with 17 additions and 9 deletions

View File

@ -21,10 +21,10 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import com.sk89q.util.StringUtil;
/**
@ -174,7 +174,7 @@ private String getNestedUsage(String[] args, int level, Method method,
command.append("<");
List<String> allowedCommands = new ArrayList<String>();
Set<String> allowedCommands = new HashSet<String>();
for (Map.Entry<String, Method> entry : map.entrySet()) {
Method childMethod = entry.getValue();
@ -232,7 +232,7 @@ public boolean executeMethod(Method parent, String[] args,
if (parent == null) { // Root
return false;
} else {
player.printError(getNestedUsage(args, level - 1, method, player));
player.printError(getNestedUsage(args, level - 1, parent, player));
return true;
}
}

View File

@ -18,7 +18,7 @@
package com.sk89q.util;
import java.util.List;
import java.util.Collection;
/**
* String utilities.
@ -144,14 +144,22 @@ public static String joinString(int[] str, String delimiter,
* @param initialIndex
* @return
*/
public static String joinString(List<String> str, String delimiter,
public static String joinString(Collection<?> str, String delimiter,
int initialIndex) {
if (str.size() == 0) {
return "";
}
StringBuilder buffer = new StringBuilder(str.get(initialIndex).toString());
for (int i = initialIndex + 1; i < str.size(); i++) {
buffer.append(delimiter).append(str.get(i).toString());
StringBuilder buffer = new StringBuilder();
int i = 0;
for (Object o : str) {
if (i >= initialIndex) {
if (i > 0) {
buffer.append(delimiter);
}
buffer.append(o.toString());
}
i++;
}
return buffer.toString();
}