From 3628ededd60380022913301ea9788b46c16dffb8 Mon Sep 17 00:00:00 2001 From: MapleHuang Date: Thu, 8 Aug 2019 17:53:46 +0800 Subject: [PATCH 1/2] Added support for LanguageUtils for translate to client language --- config.yml | 5 ++++- plugin.yml | 2 +- .../zeshanaslam/actionhealth/LookThread.java | 2 +- src/com/zeshanaslam/actionhealth/Main.java | 5 +++++ .../actionhealth/config/ConfigStore.java | 2 ++ .../actionhealth/support/LangUtilsSupport.java | 17 +++++++++++++++++ .../actionhealth/utils/HealthUtil.java | 13 ++++++++----- 7 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 src/com/zeshanaslam/actionhealth/support/LangUtilsSupport.java diff --git a/config.yml b/config.yml index 6906bee..d41b1e9 100644 --- a/config.yml +++ b/config.yml @@ -91,4 +91,7 @@ Spectator Mode: 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 +Use Client Language: false \ No newline at end of file diff --git a/plugin.yml b/plugin.yml index ad24a92..c2fa8bc 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,7 +1,7 @@ name: ActionHealth main: com.zeshanaslam.actionhealth.Main version: 3.3.5 -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 afe5156..1cf9e8a 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; @@ -90,6 +91,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 5c170d1..ddb0b3b 100644 --- a/src/com/zeshanaslam/actionhealth/utils/HealthUtil.java +++ b/src/com/zeshanaslam/actionhealth/utils/HealthUtil.java @@ -1,6 +1,7 @@ package com.zeshanaslam.actionhealth.utils; import com.zeshanaslam.actionhealth.Main; +import com.zeshanaslam.actionhealth.support.LangUtilsSupport; import com.zeshanaslam.actionhealth.support.McMMOSupport; import com.zeshanaslam.actionhealth.support.MythicMobsSupport; import com.zeshanaslam.actionhealth.support.PreAction; @@ -80,7 +81,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); @@ -163,7 +164,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. @@ -176,10 +177,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); From befb48f508ceff4d8989b97e953bbdc2a4dd9fad Mon Sep 17 00:00:00 2001 From: Zeshan Aslam Date: Thu, 8 Aug 2019 11:47:32 -0400 Subject: [PATCH 2/2] Added link to language utils --- config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/config.yml b/config.yml index d41b1e9..068e651 100644 --- a/config.yml +++ b/config.yml @@ -94,4 +94,5 @@ Name: - 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