diff --git a/config.yml b/config.yml index 6e1d51b..01874a0 100644 --- a/config.yml +++ b/config.yml @@ -94,4 +94,8 @@ ShowMiniaturePets: true # For users that do, I will tag them on Spigot and display their server IP. Name Change: false Name: - - Snow Golem = New name \ No newline at end of file + - Snow Golem = New name + +# Translate names using Client Language. Need to install LanguageUtils +# https://www.spigotmc.org/resources/1-7-x-1-12-language-utils.8859/ +Use Client Language: false \ No newline at end of file diff --git a/plugin.yml b/plugin.yml index 5df1052..06012f0 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,7 +1,7 @@ name: ActionHealth main: com.zeshanaslam.actionhealth.Main version: 3.3.6 -softdepend: [PlaceholderAPI, MVdWPlaceholderAPI, WorldGuard, mcMMO, MythicMobs] +softdepend: [PlaceholderAPI, MVdWPlaceholderAPI, WorldGuard, mcMMO, MythicMobs, LangUtils] commands: Actionhealth: description: Actionhealth main commands. \ No newline at end of file diff --git a/src/com/zeshanaslam/actionhealth/LookThread.java b/src/com/zeshanaslam/actionhealth/LookThread.java index 2c875dd..10c4745 100644 --- a/src/com/zeshanaslam/actionhealth/LookThread.java +++ b/src/com/zeshanaslam/actionhealth/LookThread.java @@ -43,7 +43,7 @@ public class LookThread extends BukkitRunnable { for (LivingEntity livingEntity : entities) { if (!plugin.healthUtil.matchesRequirements(player, livingEntity)) continue; - String name = plugin.healthUtil.getName(livingEntity); + String name = plugin.healthUtil.getName(livingEntity, player); if (TargetHelper.canSee(player, livingEntity.getLocation(), transparentTypeIds) && !plugin.healthUtil.isBlacklisted(livingEntity, name)) { plugin.healthUtil.sendHealth(player, livingEntity, livingEntity.getHealth()); diff --git a/src/com/zeshanaslam/actionhealth/Main.java b/src/com/zeshanaslam/actionhealth/Main.java index 79c5bed..fbf4b9d 100644 --- a/src/com/zeshanaslam/actionhealth/Main.java +++ b/src/com/zeshanaslam/actionhealth/Main.java @@ -23,6 +23,7 @@ public class Main extends JavaPlugin { public int taskID = -1; public boolean mcMMOEnabled; public boolean mythicMobsEnabled; + public boolean langUtilsEnabled; public List toggle = new ArrayList<>(); @@ -58,6 +59,10 @@ public class Main extends JavaPlugin { if (Bukkit.getServer().getPluginManager().isPluginEnabled("MythicMobs")) { mythicMobsEnabled = true; } + + if (Bukkit.getServer().getPluginManager().isPluginEnabled("LangUtils")) { + langUtilsEnabled = true; + } } @Override diff --git a/src/com/zeshanaslam/actionhealth/config/ConfigStore.java b/src/com/zeshanaslam/actionhealth/config/ConfigStore.java index 7409935..b407e4d 100644 --- a/src/com/zeshanaslam/actionhealth/config/ConfigStore.java +++ b/src/com/zeshanaslam/actionhealth/config/ConfigStore.java @@ -26,6 +26,7 @@ public class ConfigStore { public boolean canSee; public boolean invisiblePotion; public boolean spectatorMode; + public boolean useClientLanguage; public String filledHeartIcon; public String halfHeartIcon; public String emptyHeartIcon; @@ -91,6 +92,7 @@ public class ConfigStore { translate.put(split[0], split[1]); } } + useClientLanguage = plugin.getConfig().getBoolean("Use Client Language"); // Load disabled regions regions = plugin.getConfig().getStringList("Disabled regions"); diff --git a/src/com/zeshanaslam/actionhealth/support/LangUtilsSupport.java b/src/com/zeshanaslam/actionhealth/support/LangUtilsSupport.java new file mode 100644 index 0000000..872f188 --- /dev/null +++ b/src/com/zeshanaslam/actionhealth/support/LangUtilsSupport.java @@ -0,0 +1,17 @@ +package com.zeshanaslam.actionhealth.support; + +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; + +import com.meowj.langutils.lang.LanguageHelper; + +public class LangUtilsSupport { + + public String getName(Entity entity, Player player) { + return LanguageHelper.getEntityName(entity, player); + } + + public String getName(Entity entity, String locale) { + return LanguageHelper.getEntityName(entity, locale); + } +} diff --git a/src/com/zeshanaslam/actionhealth/utils/HealthUtil.java b/src/com/zeshanaslam/actionhealth/utils/HealthUtil.java index aab7251..9fecd29 100644 --- a/src/com/zeshanaslam/actionhealth/utils/HealthUtil.java +++ b/src/com/zeshanaslam/actionhealth/utils/HealthUtil.java @@ -2,6 +2,7 @@ package com.zeshanaslam.actionhealth.utils; import com.zeshanaslam.actionhealth.Main; import com.zeshanaslam.actionhealth.api.HealthSendEvent; +import com.zeshanaslam.actionhealth.support.LangUtilsSupport; import com.zeshanaslam.actionhealth.support.McMMOSupport; import com.zeshanaslam.actionhealth.support.MythicMobsSupport; import com.zeshanaslam.actionhealth.support.PreAction; @@ -82,7 +83,7 @@ public class HealthUtil { if (health < 0.0 || entity.isDead()) health = 0.0; - String name = getName(entity); + String name = getName(entity, receiver); if (plugin.healthUtil.isBlacklisted(entity, name)) return null; if (plugin.configStore.stripName) name = ChatColor.stripColor(name); @@ -172,7 +173,7 @@ public class HealthUtil { return output; } - public String getName(LivingEntity entity) { + public String getName(LivingEntity entity, Player receiver) { String name; // Supporting mcmmo health bar to get to display correct name. @@ -185,10 +186,12 @@ public class HealthUtil { } if (mcMMOName == null) { - if (entity.getCustomName() == null) { - name = getNameReflection(entity); + if (entity.getCustomName() != null) { + name = entity.getCustomName(); + } else if(plugin.langUtilsEnabled && plugin.configStore.useClientLanguage && receiver != null) { + name = new LangUtilsSupport().getName(entity, receiver); } else { - name = entity.getCustomName(); + name = getNameReflection(entity); } } else if (mcMMOName.equals("")) { name = getNameReflection(entity);