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 97a76b167..f16102176 100644 --- a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java +++ b/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java @@ -111,58 +111,6 @@ public class ExperienceConfig extends ConfigValidated { return reason; } - /* - * Experience Bar Stuff - */ - - public boolean isPartyExperienceBarsEnabled() { - return getBooleanValue(EXPERIENCE + BARS, UPDATE, PARTY); - } - - public boolean isPassiveGainsExperienceBarsEnabled() { - return getBooleanValue(EXPERIENCE + BARS, UPDATE, PASSIVE); - } - - public boolean getDoExperienceBarsAlwaysUpdateTitle() { - return getBooleanValue(EXPERIENCE + BARS, THIS_MAY_CAUSE_LAG, ALWAYS + UPDATE + TITLES_WHEN_XPIS_GAINED, ENABLE) || getAddExtraDetails(); - } - - public boolean getAddExtraDetails() { - return getBooleanValue(EXPERIENCE + BARS, THIS_MAY_CAUSE_LAG, ALWAYS + UPDATE + TITLES_WHEN_XPIS_GAINED, EXTRA_DETAILS); - } - - public boolean isExperienceBarsEnabled() { - return getBooleanValue(EXPERIENCE + BARS, ENABLE); - } - - public boolean isExperienceBarEnabled(PrimarySkillType primarySkillType) { - return getBooleanValue(EXPERIENCE + BARS, StringUtils.getCapitalized(primarySkillType.toString()), ENABLE); - } - - public BarColor getExperienceBarColor(PrimarySkillType primarySkillType) { - String colorValueFromConfig = getStringValue(EXPERIENCE + BARS, StringUtils.getCapitalized(primarySkillType.toString()), COLOR); - - for (BarColor barColor : BarColor.values()) { - if (barColor.toString().equalsIgnoreCase(colorValueFromConfig)) - return barColor; - } - - //In case the value is invalid - return BarColor.WHITE; - } - - public BarStyle getExperienceBarStyle(PrimarySkillType primarySkillType) { - String colorValueFromConfig = getStringValue(EXPERIENCE + BARS, StringUtils.getCapitalized(primarySkillType.toString()), BAR_STYLE); - - for (BarStyle barStyle : BarStyle.values()) { - if (barStyle.toString().equalsIgnoreCase(colorValueFromConfig)) - return barStyle; - } - - //In case the value is invalid - return BarStyle.SOLID; - } - /* Repair */ public double getRepairXPBase() { return getDoubleValue(EXPERIENCE, REPAIR, BASE1); diff --git a/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigExperienceBars.java b/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigExperienceBars.java index 8aa49c25a..6411bf0a0 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigExperienceBars.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigExperienceBars.java @@ -125,6 +125,27 @@ public class ConfigExperienceBars { return enableXPBars; } + public boolean getXPBarToggle(PrimarySkillType primarySkillType) { + if(xpBarSpecificToggles.get(primarySkillType) == null) + return true; + + return xpBarSpecificToggles.get(primarySkillType); + } + + public BarColor getXPBarColor(PrimarySkillType primarySkillType) { + if(xpBarColorMap.get(primarySkillType) == null) + return BarColor.WHITE; + + return xpBarColorMap.get(primarySkillType); + } + + public BarStyle getXPBarStyle(PrimarySkillType primarySkillType) { + if(xpBarStyleMap.get(primarySkillType) == null) + return BarStyle.SEGMENTED_6; + + return xpBarStyleMap.get(primarySkillType); + } + public HashMap getXpBarSpecificToggles() { return xpBarSpecificToggles; } diff --git a/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigLeveling.java b/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigLeveling.java index 9c99015d1..d8de23dd0 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigLeveling.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigLeveling.java @@ -42,6 +42,14 @@ public class ConfigLeveling { * GETTER BOILERPLATE */ + public BarColor getXPBarColor(PrimarySkillType primarySkillType) { + return configExperienceBars.getXPBarColor(primarySkillType); + } + + public BarStyle getXPBarStyle(PrimarySkillType primarySkillType) { + return configExperienceBars.getXPBarStyle(primarySkillType); + } + public boolean isPartyExperienceTriggerXpBarDisplay() { return configExperienceBars.isPartyExperienceTriggerXpBarDisplay(); } @@ -70,6 +78,10 @@ public class ConfigLeveling { return configExperienceBars.getXpBarStyleMap(); } + public boolean getXPBarToggle(PrimarySkillType primarySkillType) { + return configExperienceBars.getXPBarToggle(primarySkillType); + } + public ConfigExperienceBars getConfigExperienceBars() { return configExperienceBars; } diff --git a/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java b/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java index 993784fd0..f8a8042bb 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java +++ b/src/main/java/com/gmail/nossr50/datatypes/player/McMMOPlayer.java @@ -167,11 +167,11 @@ public class McMMOPlayer { public void processPostXpEvent(XPGainReason xpGainReason, PrimarySkillType primarySkillType, Plugin plugin, XPGainSource xpGainSource) { //Updates from Party sources - if (xpGainSource == XPGainSource.PARTY_MEMBERS && !ExperienceConfig.getInstance().isPartyExperienceBarsEnabled()) + if (xpGainSource == XPGainSource.PARTY_MEMBERS && !mcMMO.getConfigManager().getConfigLeveling().isPartyExperienceTriggerXpBarDisplay()) return; //Updates from passive sources (Alchemy, Smelting, etc...) - if (xpGainSource == XPGainSource.PASSIVE && !ExperienceConfig.getInstance().isPassiveGainsExperienceBarsEnabled()) + if (xpGainSource == XPGainSource.PASSIVE && !mcMMO.getConfigManager().getConfigLeveling().isPassiveGainXPBars()) return; updateXPBar(primarySkillType, plugin); diff --git a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java index b7996e649..fe2169897 100644 --- a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java @@ -584,7 +584,7 @@ public class BlockListener implements Listener { player.sendMessage("[mcMMO DEBUG] This furnace does not have a registered owner"); } - if (ExperienceConfig.getInstance().isExperienceBarsEnabled()) + if (mcMMO.getConfigManager().getConfigLeveling().isEnableXPBars()) player.sendMessage("[mcMMO DEBUG] XP bars are enabled, however you should check per-skill settings to make sure those are enabled."); } } diff --git a/src/main/java/com/gmail/nossr50/util/experience/ExperienceBarManager.java b/src/main/java/com/gmail/nossr50/util/experience/ExperienceBarManager.java index 42d7e86ac..f9be2fabe 100644 --- a/src/main/java/com/gmail/nossr50/util/experience/ExperienceBarManager.java +++ b/src/main/java/com/gmail/nossr50/util/experience/ExperienceBarManager.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.mcMMO; import com.gmail.nossr50.runnables.skills.ExperienceBarHideTask; import org.bukkit.plugin.Plugin; @@ -26,7 +27,7 @@ public class ExperienceBarManager { } public void updateExperienceBar(PrimarySkillType primarySkillType, Plugin plugin) { - if (!ExperienceConfig.getInstance().isExperienceBarsEnabled() || !ExperienceConfig.getInstance().isExperienceBarEnabled(primarySkillType)) + if (!mcMMO.getConfigManager().getConfigLeveling().isEnableXPBars() || !mcMMO.getConfigManager().getConfigLeveling().getXPBarToggle(primarySkillType)) return; //Init Bar 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 3278dbd1e..017251824 100644 --- a/src/main/java/com/gmail/nossr50/util/experience/ExperienceBarWrapper.java +++ b/src/main/java/com/gmail/nossr50/util/experience/ExperienceBarWrapper.java @@ -4,6 +4,7 @@ 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.mcMMO; import com.gmail.nossr50.util.StringUtils; import org.bukkit.Server; import org.bukkit.boss.BarColor; @@ -55,7 +56,7 @@ public class ExperienceBarWrapper { private String getTitleTemplate() { //If they are using extra details - if (ExperienceConfig.getInstance().getAddExtraDetails()) + if (mcMMO.getConfigManager().getConfigLeveling().isMoreDetailedXPBars()) return LocaleLoader.getString("XPBar.Complex.Template", LocaleLoader.getString("XPBar." + niceSkillName, getLevel()), getCurrentXP(), getMaxXP(), getPowerLevel(), getPercentageOfLevel()); return LocaleLoader.getString("XPBar." + niceSkillName, getLevel(), getCurrentXP(), getMaxXP(), getPowerLevel(), getPercentageOfLevel()); @@ -120,7 +121,7 @@ public class ExperienceBarWrapper { bossBar.setProgress(v); //Every time progress updates we need to check for a title update - if (getLevel() != lastLevelUpdated || ExperienceConfig.getInstance().getDoExperienceBarsAlwaysUpdateTitle()) { + if (getLevel() != lastLevelUpdated || mcMMO.getConfigManager().getConfigLeveling().isMoreDetailedXPBars()) { updateTitle(); lastLevelUpdated = getLevel(); } @@ -148,7 +149,9 @@ public class ExperienceBarWrapper { }*/ private void createBossBar() { - bossBar = mcMMOPlayer.getPlayer().getServer().createBossBar(title, ExperienceConfig.getInstance().getExperienceBarColor(primarySkillType), ExperienceConfig.getInstance().getExperienceBarStyle(primarySkillType)); + bossBar = mcMMOPlayer.getPlayer().getServer().createBossBar(title, + mcMMO.getConfigManager().getConfigLeveling().getXPBarColor(primarySkillType), + mcMMO.getConfigManager().getConfigLeveling().getXPBarStyle(primarySkillType)); bossBar.addPlayer(mcMMOPlayer.getPlayer()); } }