make avatar title more consistent with either the lore or the permission specification, this will also fix avatar title showing for addons that add new elements but would not necessarily make sense to display as an avatar. for example the spirits addon, having light and dark spirit would cause you to display as an avatar

This commit is contained in:
PhanaticD 2019-01-10 23:56:55 -05:00
parent a32031387f
commit 76c86bce37
2 changed files with 16 additions and 14 deletions

View file

@ -1659,13 +1659,13 @@ public class GeneralMethods {
String prefix = "";
final boolean chatEnabled = ConfigManager.languageConfig.get().getBoolean("Chat.Enable");
if (bPlayer.getElements().size() > 1) {
prefix = ChatColor.WHITE + ChatColor.translateAlternateColorCodes('&', ConfigManager.languageConfig.get().getString("Chat.Prefixes.Nonbender")) + " ";
if (player.hasPermission("bending.avatar") || (bPlayer.hasElement(Element.AIR) && bPlayer.hasElement(Element.EARTH) && bPlayer.hasElement(Element.FIRE) && bPlayer.hasElement(Element.WATER))) {
prefix = Element.AVATAR.getPrefix();
} else if (bPlayer.getElements().size() == 1) {
} else if (bPlayer.getElements().size() > 0) {
element = bPlayer.getElements().get(0);
prefix = element.getPrefix();
} else {
prefix = ChatColor.WHITE + ChatColor.translateAlternateColorCodes('&', ConfigManager.languageConfig.get().getString("Chat.Prefixes.Nonbender")) + " ";
}
if (chatEnabled) {

View file

@ -653,9 +653,16 @@ public class PKListener implements Listener {
final Player player = event.getPlayer();
final BendingPlayer bPlayer = BendingPlayer.getBendingPlayer(player);
final String e = bPlayer == null || bPlayer.getElements().size() == 0 ? "Nonbender" : (bPlayer.getElements().size() > 1 ? "Avatar" : bPlayer.getElements().get(0).getName());
String e = "Nonbender";
ChatColor c = ChatColor.WHITE;
if(player.hasPermission("bending.avatar") || (bPlayer.hasElement(Element.AIR) && bPlayer.hasElement(Element.EARTH) && bPlayer.hasElement(Element.FIRE) && bPlayer.hasElement(Element.WATER))){
c = Element.AVATAR.getColor();
e = Element.AVATAR.getName();
} else if (bPlayer.getElements().size() > 0) {
c = bPlayer.getElements().get(0).getColor();
e = bPlayer.getElements().get(0).getName();
}
final String element = ConfigManager.languageConfig.get().getString("Chat.Prefixes." + e);
final ChatColor c = bPlayer == null || bPlayer.getElements().size() == 0 ? ChatColor.WHITE : (bPlayer.getElements().size() > 1 ? Element.AVATAR.getColor() : bPlayer.getElements().get(0).getColor());
event.setFormat(event.getFormat().replace("{element}", c + element + ChatColor.RESET).replace("{ELEMENT}", c + element + ChatColor.RESET).replace("{elementcolor}", c + "").replace("{ELEMENTCOLOR}", c + ""));
if (!ConfigManager.languageConfig.get().getBoolean("Chat.Enable")) {
@ -668,15 +675,10 @@ public class PKListener implements Listener {
return;
}
if (player.hasPermission("bending.avatar") || bPlayer.getElements().size() > 1) {
if (player.hasPermission("bending.avatar") || (bPlayer.hasElement(Element.AIR) && bPlayer.hasElement(Element.EARTH) && bPlayer.hasElement(Element.FIRE) && bPlayer.hasElement(Element.WATER))) {
color = ChatColor.valueOf(ConfigManager.languageConfig.get().getString("Chat.Colors.Avatar"));
} else {
for (final Element element_ : Element.getMainElements()) {
if (bPlayer.hasElement(element_)) {
color = element_.getColor();
break;
}
}
} else if (bPlayer.getElements().size() > 0) {
color = bPlayer.getElements().get(0).getColor();
}
String format = ConfigManager.languageConfig.get().getString("Chat.Format");