Add Tabbing to new commands

• Adds tabbing to the new /bending copy command
• Adds tabbing to new /bending preset bind <preset> [player]
• Adds tabbing to new /bending preset bind <external> [player]
• Fixes permission problem with /bending copy
This commit is contained in:
StrangeOne101 2016-01-02 19:49:32 +13:00
parent a4275cfede
commit 90ef9b1219
2 changed files with 34 additions and 9 deletions

View file

@ -79,16 +79,13 @@ public class BendingTabComplete implements TabCompleter {
if (args.length > 3 || !sender.hasPermission("bending.command.add"))
return new ArrayList<String>();
List<String> l = new ArrayList<String>();
if (args.length == 2)
{
if (args.length == 2) {
l.add("Air");
l.add("Earth");
l.add("Fire");
l.add("Water");
l.add("Chi");
}
else
{
} else {
for (Player p : Bukkit.getOnlinePlayers()) {
l.add(p.getName());
}
@ -137,7 +134,7 @@ public class BendingTabComplete implements TabCompleter {
}
return getPossibleCompletionsForGivenArgs(args, players);
} else if (args[0].equalsIgnoreCase("preset") || args[0].equalsIgnoreCase("presets") || args[0].equalsIgnoreCase("pre") || args[0].equalsIgnoreCase("set") || args[0].equalsIgnoreCase("p")) {
if (args.length > 3 || !sender.hasPermission("bending.command.preset") || !(sender instanceof Player))
if (args.length > 4 || !sender.hasPermission("bending.command.preset") || !(sender instanceof Player))
return new ArrayList<String>();
List<String> l = new ArrayList<String>();
if (args.length == 2) {
@ -153,10 +150,28 @@ public class BendingTabComplete implements TabCompleter {
for (Preset preset : presets) {
presetNames.add(preset.getName());
}
} else
}
if (sender.hasPermission("bending.command.preset.bind.external")) {
if (Preset.externalPresets.keySet().size() > 0) {
for (String externalPreset : Preset.externalPresets.keySet()) {
presetNames.add(externalPreset);
}
}
}
if (presetNames.size() == 0)
return new ArrayList<String>();
return getPossibleCompletionsForGivenArgs(args, presetNames);
} else if (args.length == 4 && Arrays.asList(new String[] {"bind", "b"}).contains(args[1].toLowerCase())) {
if (!sender.hasPermission("bending.command.preset.bind.assign") || (Preset.externalPresets.keySet().contains(args[2].toLowerCase())) && !sender.hasPermission("bending.command.preset.bind.external.other")) {
return new ArrayList<String>();
}
List<String> players = new ArrayList<String>();
for (Player p : Bukkit.getOnlinePlayers()) {
players.add(p.getName());
}
return getPossibleCompletionsForGivenArgs(args, players);
}
return new ArrayList<String>();
} else if (args[0].equalsIgnoreCase("remove") || args[0].equalsIgnoreCase("rm")) {
if (args.length > 3 || !sender.hasPermission("bending.command.remove"))
return new ArrayList<String>();
@ -181,7 +196,17 @@ public class BendingTabComplete implements TabCompleter {
l.add(p.getName());
}
return getPossibleCompletionsForGivenArgs(args, l);
} else if (!PKCommand.instances.keySet().contains(args[0].toLowerCase())) {
} else if (args[0].equalsIgnoreCase("copy") || args[0].equalsIgnoreCase("co")) {
//If they can't use the command, have over 3 args (copy <player> <player>), or if have over 2 args and can't assign to other players
if (!sender.hasPermission("bending.command.copy") || args.length > 3 || (args.length > 2 && !sender.hasPermission("bending.command.copy.assign")))
return new ArrayList<String>(); //Return nothing
List<String> l = new ArrayList<String>();
for (Player p : Bukkit.getOnlinePlayers()) {
l.add(p.getName());
}
return getPossibleCompletionsForGivenArgs(args, l);
}
else if (!PKCommand.instances.keySet().contains(args[0].toLowerCase())) {
return new ArrayList<String>();
}
} else {

View file

@ -41,7 +41,7 @@ public class CopyCommand extends PKCommand {
sender.sendMessage(ChatColor.RED + "Some abilities were not bound because you cannot bend the required element.");
}
} else if (args.size() == 2) {
if (!sender.hasPermission("copy.assign")) {
if (!hasPermission(sender, "assign")) {
sender.sendMessage(ChatColor.RED + "You don't have permission to do that.");
return;
}