From f5590ce334075e1f98808e0870c75d954cc8b109 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Fri, 18 Jan 2019 13:46:03 -0800 Subject: [PATCH] XP Bars now can have custom titles (edit the locale) --- .../config/experience/ExperienceConfig.java | 4 ++++ .../util/experience/ExperienceBarWrapper.java | 9 ++++++-- src/main/resources/experience.yml | 4 ++++ .../resources/locale/locale_en_US.properties | 21 +++++++++++++++++-- 4 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java b/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java index aef0e56bb..d80ae3818 100644 --- a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java +++ b/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java @@ -250,6 +250,10 @@ public class ExperienceConfig extends AutoUpdateConfigLoader { /* * Experience Bar Stuff */ + public boolean getDoExperienceBarsAlwaysUpdateTitle() + { + return config.getBoolean("Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained", false); + } public BarColor getExperienceBarColor(PrimarySkillType primarySkillType) { String colorValueFromConfig = config.getString("Experience_Bars.Style."+StringUtils.getCapitalized(primarySkillType.toString())+".Color"); diff --git a/src/main/java/com/gmail/nossr50/util/experience/ExperienceBarWrapper.java b/src/main/java/com/gmail/nossr50/util/experience/ExperienceBarWrapper.java index 7a7f5a6aa..cc7cd5c84 100644 --- a/src/main/java/com/gmail/nossr50/util/experience/ExperienceBarWrapper.java +++ b/src/main/java/com/gmail/nossr50/util/experience/ExperienceBarWrapper.java @@ -3,6 +3,7 @@ package com.gmail.nossr50.util.experience; import com.gmail.nossr50.config.experience.ExperienceConfig; import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; +import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.util.StringUtils; import org.bukkit.ChatColor; import org.bukkit.Server; @@ -55,12 +56,16 @@ public class ExperienceBarWrapper { } private String getTitleTemplate() { - return niceSkillName + " Lv." + ChatColor.GOLD + getLevel(); + return LocaleLoader.getString("XPBar."+niceSkillName, getLevel(), getCurrentXP(), getMaxXP(), getPowerLevel(), getPercentageOfLevel()); } private int getLevel() { return mcMMOPlayer.getSkillLevel(primarySkillType); } + private int getCurrentXP() { return mcMMOPlayer.getSkillXpLevel(primarySkillType); } + private int getMaxXP() { return mcMMOPlayer.getXpToLevel(primarySkillType); } + private int getPowerLevel() { return mcMMOPlayer.getPowerLevel(); } + private int getPercentageOfLevel() { return (int) (mcMMOPlayer.getProgressInCurrentSkillLevel(primarySkillType) * 100); } public String getTitle() { return bossBar.getTitle(); @@ -97,7 +102,7 @@ public class ExperienceBarWrapper { bossBar.setProgress(v); //Every time progress updates we need to check for a title update - if(getLevel() != lastLevelUpdated) + if(getLevel() != lastLevelUpdated || ExperienceConfig.getInstance().getDoExperienceBarsAlwaysUpdateTitle()) { updateTitle(); lastLevelUpdated = getLevel(); diff --git a/src/main/resources/experience.yml b/src/main/resources/experience.yml index 772d41ccc..fc64ef781 100644 --- a/src/main/resources/experience.yml +++ b/src/main/resources/experience.yml @@ -23,6 +23,10 @@ #SOLID # The bar is one solid piece Experience_Bars: + # If you want to use a fancy edited title from the locale, then you'll probably want to turn this on, but it will make your server do a lot more work! + # I recommend leaving this off! + ThisMayCauseLag: + AlwaysUpdateTitlesWhenXPIsGained: false Style: Acrobatics: Color: PINK diff --git a/src/main/resources/locale/locale_en_US.properties b/src/main/resources/locale/locale_en_US.properties index 66f9dd4b5..15c200a54 100644 --- a/src/main/resources/locale/locale_en_US.properties +++ b/src/main/resources/locale/locale_en_US.properties @@ -77,8 +77,25 @@ MOTD.Version.Overhaul=[[GOLD]][mcMMO] [[DARK_AQUA]]Overhaul Era[[GOLD]] - [[DARK Overhaul.mcMMO.Header=[[RED]][]=====[][[GREEN]] mcMMO - Overhaul Era [[RED]][]=====[] Overhaul.mcMMO.Url.Wrap.Prefix=[[RED]][| Overhaul.mcMMO.Url.Wrap.Suffix=[[RED]]|] -Overhaul.ASCII.Art.HeaderOne=[[DARK_AQUA]]|||||||||||||||||||||||||||||||||||||| [[GOLD]] {0} [[DARK_AQUA]]|||||||||||||||||||||||||||||||||||||| - +# XP BAR Allows for the following variables -- {0} = Skill Level, {1} Current XP, {2} XP Needed for next level, {3} Power Level, {4} Percentage of Level +# Make sure you turn on Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained if you want the XP bar title to update every time a player gains XP! +XPBar.Acrobatics=Acrobatics Lv.[[GOLD]]{0} +XPBar.Alchemy=Alchemy Lv.[[GOLD]]{0} +XPBar.Archery=Archery Lv.[[GOLD]]{0} +XPBar.Axes=Axes Lv.[[GOLD]]{0} +XPBar.Excavation=Excavation Lv.[[GOLD]]{0} +XPBar.Fishing=Fishing Lv.[[GOLD]]{0} +XPBar.Herbalism=Herbalism Lv.[[GOLD]]{0} +XPBar.Mining=Mining Lv.[[GOLD]]{0} +XPBar.Repair=Repair Lv.[[GOLD]]{0} +XPBar.Salvage=Salvage Lv.[[GOLD]]{0} +XPBar.Smelting=Smelting Lv.[[GOLD]]{0} +XPBar.Swords=Swords Lv.[[GOLD]]{0} +XPBar.Taming=Taming Lv.[[GOLD]]{0} +XPBar.Unarmed=Unarmed Lv.[[GOLD]]{0} +XPBar.Woodcutting=Woodcutting Lv.[[GOLD]]{0} +# XP BAR Allows for the following variables -- {0} = Skill Level, {1} Current XP, {2} XP Needed for next level, {3} Power Level, {4} Percentage of Level +# Make sure you turn on Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained if you want the XP bar title to update every time a player gains XP! # END STYLING #ACROBATICS