Merge pull request #257 from Simplicitee/patch

Command fixes/changes
This commit is contained in:
OmniCypher 2015-09-25 22:34:25 -07:00
commit a23005546d
7 changed files with 95 additions and 17 deletions

View file

@ -30,7 +30,7 @@ public class AddCommand extends PKCommand {
if (!hasPermission(sender) || !isPlayer(sender)) { if (!hasPermission(sender) || !isPlayer(sender)) {
return; return;
} }
add(sender, (Player) sender, args.get(0)); add(sender, (Player) sender, args.get(0).toLowerCase());
} else if (args.size() == 2) { //bending add element combo } else if (args.size() == 2) { //bending add element combo
if (!hasPermission(sender, "others")) { if (!hasPermission(sender, "others")) {
return; return;
@ -40,7 +40,7 @@ public class AddCommand extends PKCommand {
sender.sendMessage(ChatColor.RED + "That player is not online."); sender.sendMessage(ChatColor.RED + "That player is not online.");
return; return;
} }
add(sender, player, args.get(1)); add(sender, player, args.get(1).toLowerCase());
} }
} }
@ -66,16 +66,20 @@ public class AddCommand extends PKCommand {
Element type = Element.getType(element); Element type = Element.getType(element);
bPlayer.addElement(type); bPlayer.addElement(type);
ChatColor color = GeneralMethods.getElementColor(type); ChatColor color = GeneralMethods.getElementColor(type);
if (element.charAt(0) == 'w' || element.charAt(0) == 'f' || element.charAt(0) == 'c') { if (element.charAt(0) == 'w' || element.charAt(0) == 'f') {
target.sendMessage(color + "You are also a " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender."); target.sendMessage(color + "You are also a " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender.");
} else if (element.charAt(0) == 'e' || element.charAt(0) == 'a') { } else if (element.charAt(0) == 'e' || element.charAt(0) == 'a') {
target.sendMessage(color + "You are also an " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender."); target.sendMessage(color + "You are also an " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender.");
} else if (element.equalsIgnoreCase("chi")) {
target.sendMessage(color + "You are now a Chiblocker.");
} }
if (!(sender instanceof Player) || !((Player) sender).equals(target)) { if (!(sender instanceof Player) || !((Player) sender).equals(target)) {
if (element.charAt(0) == 'w' || element.charAt(0) == 'f' || element.charAt(0) == 'c') { if (element.charAt(0) == 'w' || element.charAt(0) == 'f') {
sender.sendMessage(ChatColor.DARK_AQUA + target.getName() + color + " is also a " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender."); sender.sendMessage(ChatColor.DARK_AQUA + target.getName() + color + " is also a " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender.");
} else if (element.charAt(0) == 'e' || element.charAt(0) == 'a') { } else if (element.charAt(0) == 'e' || element.charAt(0) == 'a') {
sender.sendMessage(ChatColor.DARK_AQUA + target.getName() + color + " is also an " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender."); sender.sendMessage(ChatColor.DARK_AQUA + target.getName() + color + " is also an " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender.");
} else if (element.equalsIgnoreCase("chi")) {
target.sendMessage(color + "You are now a Chiblocker.");
} }
} }
GeneralMethods.saveElements(bPlayer); GeneralMethods.saveElements(bPlayer);

View file

@ -47,7 +47,7 @@ public class ChooseCommand extends PKCommand {
sender.sendMessage(ChatColor.RED + "You don't have permission to do that."); sender.sendMessage(ChatColor.RED + "You don't have permission to do that.");
return; return;
} }
String element = args.get(0); String element = args.get(0).toLowerCase();
if (Arrays.asList(Commands.elementaliases).contains(element)) { if (Arrays.asList(Commands.elementaliases).contains(element)) {
if (!hasPermission(sender, element)) { if (!hasPermission(sender, element)) {
return; return;
@ -68,7 +68,7 @@ public class ChooseCommand extends PKCommand {
sender.sendMessage(ChatColor.RED + "That player is not online."); sender.sendMessage(ChatColor.RED + "That player is not online.");
return; return;
} }
String element = args.get(0); String element = args.get(0).toLowerCase();
if (Arrays.asList(Commands.elementaliases).contains(element)) { if (Arrays.asList(Commands.elementaliases).contains(element)) {
add(sender, target, element); add(sender, target, element);
return; return;
@ -91,16 +91,20 @@ public class ChooseCommand extends PKCommand {
BendingPlayer bPlayer = GeneralMethods.getBendingPlayer(target); BendingPlayer bPlayer = GeneralMethods.getBendingPlayer(target);
bPlayer.setElement(e); bPlayer.setElement(e);
ChatColor color = GeneralMethods.getElementColor(e); ChatColor color = GeneralMethods.getElementColor(e);
if (element.charAt(0) == 'w' || element.charAt(0) == 'f' || element.charAt(0) == 'c') { if (element.charAt(0) == 'w' || element.charAt(0) == 'f') {
target.sendMessage(color + "You are now a " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender."); target.sendMessage(color + "You are now a " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender.");
} else if (element.charAt(0) == 'e' || element.charAt(0) == 'a') { } else if (element.charAt(0) == 'e' || element.charAt(0) == 'a') {
target.sendMessage(color + "You are now an " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender."); target.sendMessage(color + "You are now an " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender.");
} else if (element.equalsIgnoreCase("chi")) {
target.sendMessage(color + "You are now a Chiblocker.");
} }
if (!(sender instanceof Player) || !((Player) sender).equals(target)) { if (!(sender instanceof Player) || !((Player) sender).equals(target)) {
if (element.charAt(0) == 'w' || element.charAt(0) == 'f' || element.charAt(0) == 'c') { if (element.charAt(0) == 'w' || element.charAt(0) == 'f') {
sender.sendMessage(ChatColor.DARK_AQUA + target.getName() + color + " is now a " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender."); sender.sendMessage(ChatColor.DARK_AQUA + target.getName() + color + " is now a " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender.");
} else if (element.charAt(0) == 'e' || element.charAt(0) == 'a') { } else if (element.charAt(0) == 'e' || element.charAt(0) == 'a') {
sender.sendMessage(ChatColor.DARK_AQUA + target.getName() + color + " is now an " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender."); sender.sendMessage(ChatColor.DARK_AQUA + target.getName() + color + " is now an " + Character.toString(element.charAt(0)).toUpperCase() + element.substring(1) + "bender.");
} else if (element.equalsIgnoreCase("chi")) {
target.sendMessage(color + "You are now a Chiblocker.");
} }
} }
GeneralMethods.removeUnusableAbilities(target.getName()); GeneralMethods.removeUnusableAbilities(target.getName());

View file

@ -72,6 +72,9 @@ public class Commands {
public static String[] combustionaliases = { "combustionbending", "combustion", "cb" }; public static String[] combustionaliases = { "combustionbending", "combustion", "cb" };
public static String[] lightningaliases = { "lightningbending", "lightning" }; public static String[] lightningaliases = { "lightningbending", "lightning" };
//Miscellaneous
public static String[] commandaliases = { "b", "pk", "bending", "mtla", "tla", "korra", "bend" };
private void init() { private void init() {
PluginCommand projectkorra = plugin.getCommand("projectkorra"); PluginCommand projectkorra = plugin.getCommand("projectkorra");
new AddCommand(); new AddCommand();
@ -105,7 +108,7 @@ public class Commands {
args[i] = args[i]; args[i] = args[i];
} }
if (args.length == 0) { if (args.length == 0 && Arrays.asList(commandaliases).contains(label.toLowerCase())) {
s.sendMessage(ChatColor.RED + "/bending help [Ability/Command] " + ChatColor.YELLOW + "Display help."); s.sendMessage(ChatColor.RED + "/bending help [Ability/Command] " + ChatColor.YELLOW + "Display help.");
s.sendMessage(ChatColor.RED + "/bending choose [Element] " + ChatColor.YELLOW + "Choose an element."); s.sendMessage(ChatColor.RED + "/bending choose [Element] " + ChatColor.YELLOW + "Choose an element.");
s.sendMessage(ChatColor.RED + "/bending bind [Ability] # " + ChatColor.YELLOW + "Bind an ability."); s.sendMessage(ChatColor.RED + "/bending bind [Ability] # " + ChatColor.YELLOW + "Bind an ability.");
@ -114,7 +117,7 @@ public class Commands {
List<String> sendingArgs = Arrays.asList(args).subList(1, args.length); List<String> sendingArgs = Arrays.asList(args).subList(1, args.length);
for (PKCommand command : PKCommand.instances.values()) { for (PKCommand command : PKCommand.instances.values()) {
if (Arrays.asList(command.getAliases()).contains(args[0])) { if (Arrays.asList(command.getAliases()).contains(args[0].toLowerCase())) {
command.execute(s, sendingArgs); command.execute(s, sendingArgs);
return true; return true;
} }

View file

@ -4,6 +4,7 @@ import com.projectkorra.projectkorra.BendingPlayer;
import com.projectkorra.projectkorra.Element; import com.projectkorra.projectkorra.Element;
import com.projectkorra.projectkorra.GeneralMethods; import com.projectkorra.projectkorra.GeneralMethods;
import com.projectkorra.projectkorra.ProjectKorra; import com.projectkorra.projectkorra.ProjectKorra;
import com.projectkorra.projectkorra.SubElement;
import com.projectkorra.projectkorra.ability.combo.ComboManager; import com.projectkorra.projectkorra.ability.combo.ComboManager;
import com.projectkorra.projectkorra.airbending.AirMethods; import com.projectkorra.projectkorra.airbending.AirMethods;
import com.projectkorra.projectkorra.chiblocking.ChiMethods; import com.projectkorra.projectkorra.chiblocking.ChiMethods;
@ -37,7 +38,7 @@ public class DisplayCommand extends PKCommand {
//bending display [Element] //bending display [Element]
if (args.size() == 1) { if (args.size() == 1) {
String element = args.get(0); String element = args.get(0).toLowerCase();
//combos //combos
if (Arrays.asList(Commands.comboaliases).contains(element)) { if (Arrays.asList(Commands.comboaliases).contains(element)) {
element = getElement(element); element = getElement(element);
@ -68,7 +69,19 @@ public class DisplayCommand extends PKCommand {
} }
else { else {
sender.sendMessage(ChatColor.RED + "Not a valid Element." + ChatColor.WHITE + " Elements: " + AirMethods.getAirColor() + "Air" + ChatColor.WHITE + " | " + WaterMethods.getWaterColor() + "Water" + ChatColor.WHITE + " | " + EarthMethods.getEarthColor() + "Earth" + ChatColor.WHITE + " | " + FireMethods.getFireColor() + "Fire" + ChatColor.WHITE + " | " + ChiMethods.getChiColor() + "Chi"); ChatColor w = ChatColor.WHITE;
sender.sendMessage(ChatColor.RED + "Not a valid argument." + ChatColor.WHITE + "\nElements: " + AirMethods.getAirColor() + "Air" + ChatColor.WHITE + " | " + WaterMethods.getWaterColor() + "Water" + ChatColor.WHITE + " | " + EarthMethods.getEarthColor() + "Earth" + ChatColor.WHITE + " | " + FireMethods.getFireColor() + "Fire" + ChatColor.WHITE + " | " + ChiMethods.getChiColor() + "Chi");
sender.sendMessage(w + "SubElements: "
+ w + "\n-" + GeneralMethods.getSubBendingColor(Element.Air) + " Flight"
+ w + "\n-" + GeneralMethods.getSubBendingColor(Element.Earth) + " Lavabending"
+ w + "\n-" + GeneralMethods.getSubBendingColor(Element.Earth) + " Metalbending"
+ w + "\n-" + GeneralMethods.getSubBendingColor(Element.Earth) + " Sandbending"
+ w + "\n-" + GeneralMethods.getSubBendingColor(Element.Fire) + " Combustion"
+ w + "\n-" + GeneralMethods.getSubBendingColor(Element.Fire) + " Lightning"
+ w + "\n-" + GeneralMethods.getSubBendingColor(Element.Water) + " Bloodbending"
+ w + "\n-" + GeneralMethods.getSubBendingColor(Element.Water) + " Healing"
+ w + "\n-" + GeneralMethods.getSubBendingColor(Element.Water) + " Icebending"
+ w + "\n-" + GeneralMethods.getSubBendingColor(Element.Water) + " Plantbending");
} }
} }
if (args.size() == 0) { if (args.size() == 0) {
@ -93,7 +106,7 @@ public class DisplayCommand extends PKCommand {
sender.sendMessage(ChatColor.RED + "You must select a valid element."); sender.sendMessage(ChatColor.RED + "You must select a valid element.");
return; return;
} else if (abilities.isEmpty()) { } else if (abilities.isEmpty()) {
sender.sendMessage(ChatColor.RED + "There are no " + element + " abilities enabled on the server."); sender.sendMessage(ChatColor.YELLOW + "There are no " + GeneralMethods.getElementColor(Element.valueOf(element)) + element + ChatColor.YELLOW + " abilities enabled on the server.");
} }
for (String ability : abilities) { for (String ability : abilities) {
if (GeneralMethods.isSubAbility(ability)) if (GeneralMethods.isSubAbility(ability))
@ -102,6 +115,54 @@ public class DisplayCommand extends PKCommand {
sender.sendMessage(GeneralMethods.getElementColor(Element.getType(element)) + ability); sender.sendMessage(GeneralMethods.getElementColor(Element.getType(element)) + ability);
} }
} }
if (element.equalsIgnoreCase("earth")) {
sender.sendMessage(ChatColor.DARK_GREEN + "Combos:" + ChatColor.GREEN + "/bending display earthcombo");
if (sender.hasPermission("bending.earth.lavabending")) {
sender.sendMessage(ChatColor.DARK_GREEN + "Lavabending abilities: " + ChatColor.GREEN + "/bending display lavabending");
}
if (sender.hasPermission("bending.earth.metalbending")) {
sender.sendMessage(ChatColor.DARK_GREEN + "Metalbending abilities: " + ChatColor.GREEN + "/bending display metalbending");
}
if (sender.hasPermission("bending.earth.sandbending")) {
sender.sendMessage(ChatColor.DARK_GREEN + "Sandbending abilities: " + ChatColor.GREEN + "/bending display sandbending");
}
}
if (element.equalsIgnoreCase("air")) {
sender.sendMessage(ChatColor.DARK_GRAY + "Combos:" + ChatColor.GRAY + "/bending display aircombo");
if (sender.hasPermission("bending.air.flight")) {
sender.sendMessage(ChatColor.DARK_GRAY + "Flight abilities: " + ChatColor.GRAY + "/bending display flight");
}
//if (sender.hasPermission("bending.air.spiritualprojection")) {
// sender.sendMessage(ChatColor.DARK_GRAY + "SpiritualProjection abilities: " + ChatColor.GRAY + "/bending display spiritualprojection");
//}
}
if (element.equalsIgnoreCase("fire")) {
sender.sendMessage(ChatColor.DARK_RED + "Combos:" + ChatColor.RED + "/bending display firecombo");
if (sender.hasPermission("bending.fire.lightningbending")) {
sender.sendMessage(ChatColor.DARK_RED + "Lightning abilities: " + ChatColor.RED + "/bending display lightning");
}
if (sender.hasPermission("bending.fire.combustionbending")) {
sender.sendMessage(ChatColor.DARK_RED + "Combustion abilities: " + ChatColor.RED + "/bending display combustion");
}
}
if (element.equalsIgnoreCase("water")) {
sender.sendMessage(ChatColor.DARK_AQUA + "Combos:" + ChatColor.AQUA + "/bending display watercombo");
if (sender.hasPermission("bending.water.bloodbending")) {
sender.sendMessage(ChatColor.DARK_AQUA + "Bloodbending abilities: " + ChatColor.AQUA + "/bending display bloodbending");
}
if (sender.hasPermission("bending.water.healing")) {
sender.sendMessage(ChatColor.DARK_AQUA + "Healing abilities: " + ChatColor.AQUA + "/bending display healing");
}
if (sender.hasPermission("bending.water.icebending")) {
sender.sendMessage(ChatColor.DARK_AQUA + "Icebending abilities: " + ChatColor.AQUA + "/bending display icebending");
}
if (sender.hasPermission("bending.water.plantbending")) {
sender.sendMessage(ChatColor.DARK_AQUA + "Plantbending abilities: " + ChatColor.AQUA + "/bending display plantbending");
}
}
if (element.equalsIgnoreCase("chi")) {
sender.sendMessage(ChatColor.GOLD + "Combos: " + ChatColor.YELLOW + "/bending display chicombo");
}
} }
/** /**
@ -112,9 +173,15 @@ public class DisplayCommand extends PKCommand {
*/ */
private void displaySubElement(CommandSender sender, String element) { private void displaySubElement(CommandSender sender, String element) {
List<String> abilities = ProjectKorra.plugin.abManager.getAbilities(element); List<String> abilities = ProjectKorra.plugin.abManager.getAbilities(element);
if (abilities.isEmpty()) {
Element e = SubElement.getType(element.toLowerCase()).getMainElement();
ChatColor color = GeneralMethods.getSubBendingColor(e);
sender.sendMessage(ChatColor.YELLOW + "There are no " + color + element + ChatColor.YELLOW + " abilities installed!");
return;
}
for (String ability : abilities) { for (String ability : abilities) {
if (!(sender instanceof Player) || GeneralMethods.canView((Player) sender, ability)) { if (!(sender instanceof Player) || GeneralMethods.canView((Player) sender, ability)) {
sender.sendMessage(GeneralMethods.getSubBendingColor(Element.getType(getElement(getElement(element)))) + ability); sender.sendMessage(GeneralMethods.getSubBendingColor(Element.getType(getElement(element))) + ability);
} }
} }
} }

View file

@ -36,7 +36,7 @@ public class HelpCommand extends PKCommand {
String arg = args.get(0); String arg = args.get(0);
if (instances.keySet().contains(arg)) {//bending help command if (instances.keySet().contains(arg.toLowerCase())) {//bending help command
instances.get(arg).help(sender, true); instances.get(arg).help(sender, true);
} else if (Arrays.asList(Commands.comboaliases).contains(arg)) { //bending help elementcombo } else if (Arrays.asList(Commands.comboaliases).contains(arg)) { //bending help elementcombo
sender.sendMessage(ChatColor.GOLD + "Proper Usage: " + ChatColor.RED + "/bending display " + arg + ChatColor.GOLD + " or " + ChatColor.RED + "/bending help <comboname>"); sender.sendMessage(ChatColor.GOLD + "Proper Usage: " + ChatColor.RED + "/bending display " + arg + ChatColor.GOLD + " or " + ChatColor.RED + "/bending help <comboname>");

View file

@ -60,10 +60,10 @@ public class PermaremoveCommand extends PKCommand {
sender.sendMessage(ChatColor.GREEN + "You have restored the bending of: " + ChatColor.DARK_AQUA + player.getName()); sender.sendMessage(ChatColor.GREEN + "You have restored the bending of: " + ChatColor.DARK_AQUA + player.getName());
} else { } else {
bPlayer.getElements().clear(); bPlayer.getElements().clear();
GeneralMethods.removeUnusableAbilities(player.getName());
GeneralMethods.saveElements(bPlayer); GeneralMethods.saveElements(bPlayer);
bPlayer.setPermaRemoved(true); bPlayer.setPermaRemoved(true);
GeneralMethods.savePermaRemoved(bPlayer); GeneralMethods.savePermaRemoved(bPlayer);
GeneralMethods.removeUnusableAbilities(player.getName());
player.sendMessage(ChatColor.RED + "Your bending has been permanently removed."); player.sendMessage(ChatColor.RED + "Your bending has been permanently removed.");
if (!(sender instanceof Player) || sender.getName().equals(target)) if (!(sender instanceof Player) || sender.getName().equals(target))
sender.sendMessage(ChatColor.RED + "You have permenantly removed the bending of: " + ChatColor.DARK_AQUA + player.getName()); sender.sendMessage(ChatColor.RED + "You have permenantly removed the bending of: " + ChatColor.DARK_AQUA + player.getName());

View file

@ -38,9 +38,9 @@ public class RemoveCommand extends PKCommand {
GeneralMethods.createBendingPlayer(player.getUniqueId(), player.getName()); GeneralMethods.createBendingPlayer(player.getUniqueId(), player.getName());
bPlayer = GeneralMethods.getBendingPlayer(player); bPlayer = GeneralMethods.getBendingPlayer(player);
} }
GeneralMethods.removeUnusableAbilities(player.getName());
bPlayer.getElements().clear(); bPlayer.getElements().clear();
GeneralMethods.saveElements(bPlayer); GeneralMethods.saveElements(bPlayer);
GeneralMethods.removeUnusableAbilities(player.getName());
sender.sendMessage(ChatColor.GREEN + "You have removed the bending of " + ChatColor.DARK_AQUA + player.getName()); sender.sendMessage(ChatColor.GREEN + "You have removed the bending of " + ChatColor.DARK_AQUA + player.getName());
player.sendMessage(ChatColor.GREEN + "Your bending has been removed by " + ChatColor.DARK_AQUA + sender.getName()); player.sendMessage(ChatColor.GREEN + "Your bending has been removed by " + ChatColor.DARK_AQUA + sender.getName());
Bukkit.getServer().getPluginManager().callEvent(new PlayerChangeElementEvent(sender, player, null, Result.REMOVE)); Bukkit.getServer().getPluginManager().callEvent(new PlayerChangeElementEvent(sender, player, null, Result.REMOVE));