XP Bars now can have custom titles (edit the locale)

This commit is contained in:
nossr50 2019-01-18 13:46:03 -08:00
parent 43da10a855
commit f5590ce334
4 changed files with 34 additions and 4 deletions

View File

@ -250,6 +250,10 @@ public class ExperienceConfig extends AutoUpdateConfigLoader {
/* /*
* Experience Bar Stuff * Experience Bar Stuff
*/ */
public boolean getDoExperienceBarsAlwaysUpdateTitle()
{
return config.getBoolean("Experience_Bars.ThisMayCauseLag.AlwaysUpdateTitlesWhenXPIsGained", false);
}
public BarColor getExperienceBarColor(PrimarySkillType primarySkillType) public BarColor getExperienceBarColor(PrimarySkillType primarySkillType)
{ {
String colorValueFromConfig = config.getString("Experience_Bars.Style."+StringUtils.getCapitalized(primarySkillType.toString())+".Color"); String colorValueFromConfig = config.getString("Experience_Bars.Style."+StringUtils.getCapitalized(primarySkillType.toString())+".Color");

View File

@ -3,6 +3,7 @@ package com.gmail.nossr50.util.experience;
import com.gmail.nossr50.config.experience.ExperienceConfig; import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.McMMOPlayer;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.locale.LocaleLoader;
import com.gmail.nossr50.util.StringUtils; import com.gmail.nossr50.util.StringUtils;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Server; import org.bukkit.Server;
@ -55,12 +56,16 @@ public class ExperienceBarWrapper {
} }
private String getTitleTemplate() { private String getTitleTemplate() {
return niceSkillName + " Lv." + ChatColor.GOLD + getLevel(); return LocaleLoader.getString("XPBar."+niceSkillName, getLevel(), getCurrentXP(), getMaxXP(), getPowerLevel(), getPercentageOfLevel());
} }
private int getLevel() { private int getLevel() {
return mcMMOPlayer.getSkillLevel(primarySkillType); 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() { public String getTitle() {
return bossBar.getTitle(); return bossBar.getTitle();
@ -97,7 +102,7 @@ public class ExperienceBarWrapper {
bossBar.setProgress(v); bossBar.setProgress(v);
//Every time progress updates we need to check for a title update //Every time progress updates we need to check for a title update
if(getLevel() != lastLevelUpdated) if(getLevel() != lastLevelUpdated || ExperienceConfig.getInstance().getDoExperienceBarsAlwaysUpdateTitle())
{ {
updateTitle(); updateTitle();
lastLevelUpdated = getLevel(); lastLevelUpdated = getLevel();

View File

@ -23,6 +23,10 @@
#SOLID #SOLID
# The bar is one solid piece # The bar is one solid piece
Experience_Bars: 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: Style:
Acrobatics: Acrobatics:
Color: PINK Color: PINK

View File

@ -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.Header=[[RED]][]=====[][[GREEN]] mcMMO - Overhaul Era [[RED]][]=====[]
Overhaul.mcMMO.Url.Wrap.Prefix=[[RED]][| Overhaul.mcMMO.Url.Wrap.Prefix=[[RED]][|
Overhaul.mcMMO.Url.Wrap.Suffix=[[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 # END STYLING
#ACROBATICS #ACROBATICS