Added getCommandMap() & getSortedCommandList() in CommandTreeBase (#3251)
This commit is contained in:
parent
8dca9f2694
commit
3b5ada083e
1 changed files with 19 additions and 6 deletions
|
@ -33,6 +33,7 @@ import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Base class for commands that has subcommands.
|
* Base class for commands that has subcommands.
|
||||||
|
@ -42,7 +43,7 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public abstract class CommandTreeBase extends CommandBase
|
public abstract class CommandTreeBase extends CommandBase
|
||||||
{
|
{
|
||||||
private final HashMap<String, ICommand> commandMap = new HashMap<String, ICommand>();
|
private final Map<String, ICommand> commandMap = new HashMap<String, ICommand>();
|
||||||
|
|
||||||
public void addSubcommand(ICommand c)
|
public void addSubcommand(ICommand c)
|
||||||
{
|
{
|
||||||
|
@ -51,7 +52,19 @@ public abstract class CommandTreeBase extends CommandBase
|
||||||
|
|
||||||
public Collection<ICommand> getSubCommands()
|
public Collection<ICommand> getSubCommands()
|
||||||
{
|
{
|
||||||
return Collections.unmodifiableCollection(commandMap.values());
|
return getCommandMap().values();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, ICommand> getCommandMap()
|
||||||
|
{
|
||||||
|
return Collections.unmodifiableMap(commandMap);
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<ICommand> getSortedCommandList()
|
||||||
|
{
|
||||||
|
List<ICommand> list = new ArrayList<ICommand>(getSubCommands());
|
||||||
|
Collections.sort(list);
|
||||||
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String[] shiftArgs(String[] s)
|
private static String[] shiftArgs(String[] s)
|
||||||
|
@ -73,7 +86,7 @@ public abstract class CommandTreeBase extends CommandBase
|
||||||
{
|
{
|
||||||
List<String> keys = new ArrayList<String>();
|
List<String> keys = new ArrayList<String>();
|
||||||
|
|
||||||
for(ICommand c : commandMap.values())
|
for(ICommand c : getCommandMap().values())
|
||||||
{
|
{
|
||||||
if(c.checkPermission(server, sender))
|
if(c.checkPermission(server, sender))
|
||||||
{
|
{
|
||||||
|
@ -85,7 +98,7 @@ public abstract class CommandTreeBase extends CommandBase
|
||||||
return getListOfStringsMatchingLastWord(args, keys);
|
return getListOfStringsMatchingLastWord(args, keys);
|
||||||
}
|
}
|
||||||
|
|
||||||
ICommand cmd = commandMap.get(args[0]);
|
ICommand cmd = getCommandMap().get(args[0]);
|
||||||
|
|
||||||
if(cmd != null)
|
if(cmd != null)
|
||||||
{
|
{
|
||||||
|
@ -100,7 +113,7 @@ public abstract class CommandTreeBase extends CommandBase
|
||||||
{
|
{
|
||||||
if(index > 0 && args.length > 1)
|
if(index > 0 && args.length > 1)
|
||||||
{
|
{
|
||||||
ICommand cmd = commandMap.get(args[0]);
|
ICommand cmd = getCommandMap().get(args[0]);
|
||||||
if(cmd != null)
|
if(cmd != null)
|
||||||
{
|
{
|
||||||
return cmd.isUsernameIndex(shiftArgs(args), index - 1);
|
return cmd.isUsernameIndex(shiftArgs(args), index - 1);
|
||||||
|
@ -119,7 +132,7 @@ public abstract class CommandTreeBase extends CommandBase
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ICommand cmd = commandMap.get(args[0]);
|
ICommand cmd = getCommandMap().get(args[0]);
|
||||||
|
|
||||||
if(cmd == null)
|
if(cmd == null)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue