diff --git a/src/main/java/com/gmail/nossr50/config/ConfigManager.java b/src/main/java/com/gmail/nossr50/config/ConfigManager.java index 428a38841..b8dc6ef8b 100644 --- a/src/main/java/com/gmail/nossr50/config/ConfigManager.java +++ b/src/main/java/com/gmail/nossr50/config/ConfigManager.java @@ -74,7 +74,7 @@ public final class ConfigManager { /* UNLOAD REGISTER */ - SkillPropertiesManager skillPropertiesManager; + private SkillPropertiesManager skillPropertiesManager; private ArrayList unloadables; /* COLLECTION MANAGERS */ diff --git a/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperience.java b/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperience.java index a9517b114..e1cd047ef 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperience.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperience.java @@ -8,199 +8,181 @@ import java.util.HashMap; @ConfigSerializable public class ConfigExperience { - @Setting(value = "Acrobatics", comment = "XP Settings for Acrobatics") - private ConfigExperienceAcrobatics experienceAcrobatics = new ConfigExperienceAcrobatics(); + private static final double GLOBAL_XP_MULT_DEFAULT = 1.0D; - @Setting(value = "Alchemy", comment = "XP Settings for Alchemy") - private ConfigExperienceAlchemy experienceAlchemy = new ConfigExperienceAlchemy(); + @Setting(value = "Global-XP-Multiplier", comment = "This multiplier is applied at the very end of every XP gain, you can use it as a shortcut to increase or decrease xp gains across the entire plugin" + + "\nThis value is temporarily overridden by xprate events." + + "\nDefault value: " + GLOBAL_XP_MULT_DEFAULT) + private double globalXPMultiplier = GLOBAL_XP_MULT_DEFAULT; - @Setting(value = "Archery", comment = "XP Settings for Archery") - private ConfigExperienceArchery experienceArchery = new ConfigExperienceArchery(); - - @Setting(value = "Fishing", comment = "XP Settings for Fishing") - private ConfigExperienceFishing experienceFishing = new ConfigExperienceFishing(); - - @Setting(value = "Excavation", comment = "XP Settings for Excavation") - private ConfigExperienceExcavation experienceExcavation = new ConfigExperienceExcavation(); - - @Setting(value = "Woodcutting", comment = "XP Settings for Woodcutting") - private ConfigExperienceWoodcutting experienceWoodcutting = new ConfigExperienceWoodcutting(); - - @Setting(value = "Herbalism", comment = "XP Settings for Herbalism") - private ConfigExperienceHerbalism experienceHerbalism = new ConfigExperienceHerbalism(); - - @Setting(value = "Mining", comment = "XP Settings for Mining") - private ConfigExperienceMining experienceMining = new ConfigExperienceMining(); - - @Setting(value = "Repair", comment = "XP Settings for Repair") - private ConfigExperienceRepair experienceRepair = new ConfigExperienceRepair(); - - @Setting(value = "Smelting", comment = "XP Settings for Smelting") - private ConfigExperienceSmelting experienceSmelting = new ConfigExperienceSmelting(); - - @Setting(value = "Taming", comment = "XP Settings for Taming") - private ConfigExperienceTaming experienceTaming = new ConfigExperienceTaming(); - - @Setting(value = "Z-Combat", comment = "XP Settings for Combat") - private ConfigExperienceCombat experienceCombat = new ConfigExperienceCombat(); + @Setting(value = "Skill-XP-Settings", comment = "XP values and multipliers for each skill") + private ConfigExperienceSkills configExperienceSkills = new ConfigExperienceSkills(); /* * BOILER PLATE GETTERS */ public ConfigExperienceAcrobatics getExperienceAcrobatics() { - return experienceAcrobatics; + return getConfigExperienceSkills().getExperienceAcrobatics(); } public ConfigExperienceAlchemy getExperienceAlchemy() { - return experienceAlchemy; + return getConfigExperienceSkills().getExperienceAlchemy(); } public ConfigExperienceArchery getExperienceArchery() { - return experienceArchery; + return getConfigExperienceSkills().getExperienceArchery(); } public ConfigExperienceFishing getExperienceFishing() { - return experienceFishing; + return getConfigExperienceSkills().getExperienceFishing(); } public ConfigExperienceExcavation getExperienceExcavation() { - return experienceExcavation; + return getConfigExperienceSkills().getExperienceExcavation(); } public ConfigExperienceWoodcutting getExperienceWoodcutting() { - return experienceWoodcutting; + return getConfigExperienceSkills().getExperienceWoodcutting(); } public ConfigExperienceHerbalism getExperienceHerbalism() { - return experienceHerbalism; + return getConfigExperienceSkills().getExperienceHerbalism(); } public ConfigExperienceMining getExperienceMining() { - return experienceMining; + return getConfigExperienceSkills().getExperienceMining(); } public ConfigExperienceRepair getExperienceRepair() { - return experienceRepair; + return getConfigExperienceSkills().getExperienceRepair(); } public ConfigExperienceSmelting getExperienceSmelting() { - return experienceSmelting; + return getConfigExperienceSkills().getExperienceSmelting(); } public ConfigExperienceTaming getExperienceTaming() { - return experienceTaming; + return getConfigExperienceSkills().getExperienceTaming(); } public ConfigExperienceCombat getExperienceCombat() { - return experienceCombat; + return getConfigExperienceSkills().getExperienceCombat(); } public HashMap getTamingExperienceMap() { - return experienceTaming.getTamingExperienceMap(); + return getConfigExperienceSkills().getTamingExperienceMap(); } public HashMap getMiningExperienceMap() { - return experienceMining.getMiningExperienceMap(); + return getConfigExperienceSkills().getMiningExperienceMap(); } public HashMap getSmeltingExperienceMap() { - return experienceSmelting.getSmeltingExperienceMap(); + return getConfigExperienceSkills().getSmeltingExperienceMap(); } public HashMap getItemMaterialXPMultiplier() { - return experienceRepair.getItemMaterialXPMultiplier(); + return getConfigExperienceSkills().getItemMaterialXPMultiplier(); } public double getRepairXPBase() { - return experienceRepair.getRepairXPBase(); + return getConfigExperienceSkills().getRepairXPBase(); } public HashMap getAcrobaticsXPMap() { - return experienceAcrobatics.getAcrobaticsXPMap(); + return getConfigExperienceSkills().getAcrobaticsXPMap(); } public Double getFeatherFallMultiplier() { - return experienceAcrobatics.getFeatherFallMultiplier(); + return getConfigExperienceSkills().getFeatherFallMultiplier(); } public HashMap getAlchemyXPMap() { - return experienceAlchemy.getAlchemyXPMap(); + return getConfigExperienceSkills().getAlchemyXPMap(); } public int getDodgeXP() { - return experienceAcrobatics.getDodgeXP(); + return getConfigExperienceSkills().getDodgeXP(); } public int getRollXP() { - return experienceAcrobatics.getRollXP(); + return getConfigExperienceSkills().getRollXP(); } public int getFallXP() { - return experienceAcrobatics.getFallXP(); + return getConfigExperienceSkills().getFallXP(); } public int getStageOnePotionXP() { - return experienceAlchemy.getStageOnePotionXP(); + return getConfigExperienceSkills().getStageOnePotionXP(); } public int getStageTwoPotionXP() { - return experienceAlchemy.getStageTwoPotionXP(); + return getConfigExperienceSkills().getStageTwoPotionXP(); } public int getStageThreePotionXP() { - return experienceAlchemy.getStageThreePotionXP(); + return getConfigExperienceSkills().getStageThreePotionXP(); } public int getStageFourPotionXP() { - return experienceAlchemy.getStageFourPotionXP(); + return getConfigExperienceSkills().getStageFourPotionXP(); } public int getPotionXPByStage(int potionStage) { - return experienceAlchemy.getPotionXPByStage(potionStage); + return getConfigExperienceSkills().getPotionXPByStage(potionStage); } public boolean isPvpXPEnabled() { - return experienceCombat.isPvpXPEnabled(); + return getConfigExperienceSkills().isPvpXPEnabled(); } public HashMap getCombatExperienceMap() { - return experienceCombat.getCombatExperienceMap(); + return getConfigExperienceSkills().getCombatExperienceMap(); } public double getDistanceMultiplier() { - return experienceArchery.getDistanceMultiplier(); + return getConfigExperienceSkills().getDistanceMultiplier(); } public HashMap getHerbalismXPMap() { - return experienceHerbalism.getHerbalismXPMap(); + return getConfigExperienceSkills().getHerbalismXPMap(); } public HashMap getWoodcuttingExperienceMap() { - return experienceWoodcutting.getWoodcuttingExperienceMap(); + return getConfigExperienceSkills().getWoodcuttingExperienceMap(); } public HashMap getExcavationExperienceMap() { - return experienceExcavation.getExcavationExperienceMap(); + return getConfigExperienceSkills().getExcavationExperienceMap(); } public HashMap getFishingXPMap() { - return experienceFishing.getFishingXPMap(); + return getConfigExperienceSkills().getFishingXPMap(); } public int getShakeXP() { - return experienceFishing.getShakeXP(); + return getConfigExperienceSkills().getShakeXP(); } - public double getMobSpawnerXPMult() { - return experienceCombat.getMobSpawnerXPMult(); + public double getSpawnedMobXPMult() { + return getConfigExperienceSkills().getSpawnedMobXPMult(); } public double getPVPXPMult() { - return experienceCombat.getPVPXPMult(); + return getConfigExperienceSkills().getPVPXPMult(); } public double getAnimalsXPMult() { - return experienceCombat.getAnimalsXPMult(); + return getConfigExperienceSkills().getAnimalsXPMult(); + } + + public ConfigExperienceSkills getConfigExperienceSkills() { + return configExperienceSkills; + } + + public double getGlobalXPMultiplier() { + return globalXPMultiplier; } } \ No newline at end of file diff --git a/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceCombat.java b/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceCombat.java index 5db45474a..f56b6b118 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceCombat.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceCombat.java @@ -77,8 +77,9 @@ public class ConfigExperienceCombat { //SPECIAL SPECIAL_COMBAT_EXPERIENCE_DEFAULT = new HashMap<>(); SPECIAL_COMBAT_EXPERIENCE_DEFAULT.put("animals", 1.0D); //TODO: this seems like a dumb config option - SPECIAL_COMBAT_EXPERIENCE_DEFAULT.put("mobspawners", 0.0D); + SPECIAL_COMBAT_EXPERIENCE_DEFAULT.put("spawned", 0.0D); SPECIAL_COMBAT_EXPERIENCE_DEFAULT.put("pvp", 1.0D); + SPECIAL_COMBAT_EXPERIENCE_DEFAULT.put("player-bred-mobs", 1.0D); } @Setting(value = "Combat-XP-Multipliers") @@ -100,7 +101,7 @@ public class ConfigExperienceCombat { return combatExperienceMap; } - public double getMobSpawnerXPMult() { + public double getSpawnedMobXPMult() { return specialCombatExperienceMap.get("mobspawners"); } diff --git a/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceSkills.java b/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceSkills.java new file mode 100644 index 000000000..e9b127610 --- /dev/null +++ b/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceSkills.java @@ -0,0 +1,205 @@ +package com.gmail.nossr50.config.hocon.experience; + +import ninja.leaping.configurate.objectmapping.Setting; +import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; + +import java.util.HashMap; + +@ConfigSerializable +public class ConfigExperienceSkills { + @Setting(value = "Acrobatics", comment = "XP Settings for Acrobatics") + private ConfigExperienceAcrobatics experienceAcrobatics = new ConfigExperienceAcrobatics(); + + @Setting(value = "Alchemy", comment = "XP Settings for Alchemy") + private ConfigExperienceAlchemy experienceAlchemy = new ConfigExperienceAlchemy(); + + @Setting(value = "Archery", comment = "XP Settings for Archery") + private ConfigExperienceArchery experienceArchery = new ConfigExperienceArchery(); + + @Setting(value = "Fishing", comment = "XP Settings for Fishing") + private ConfigExperienceFishing experienceFishing = new ConfigExperienceFishing(); + + @Setting(value = "Excavation", comment = "XP Settings for Excavation") + private ConfigExperienceExcavation experienceExcavation = new ConfigExperienceExcavation(); + + @Setting(value = "Woodcutting", comment = "XP Settings for Woodcutting") + private ConfigExperienceWoodcutting experienceWoodcutting = new ConfigExperienceWoodcutting(); + + @Setting(value = "Herbalism", comment = "XP Settings for Herbalism") + private ConfigExperienceHerbalism experienceHerbalism = new ConfigExperienceHerbalism(); + + @Setting(value = "Mining", comment = "XP Settings for Mining") + private ConfigExperienceMining experienceMining = new ConfigExperienceMining(); + + @Setting(value = "Repair", comment = "XP Settings for Repair") + private ConfigExperienceRepair experienceRepair = new ConfigExperienceRepair(); + + @Setting(value = "Smelting", comment = "XP Settings for Smelting") + private ConfigExperienceSmelting experienceSmelting = new ConfigExperienceSmelting(); + + @Setting(value = "Taming", comment = "XP Settings for Taming") + private ConfigExperienceTaming experienceTaming = new ConfigExperienceTaming(); + + @Setting(value = "Z-Combat", comment = "XP Settings for Combat") + private ConfigExperienceCombat experienceCombat = new ConfigExperienceCombat(); + + /* + * BOILER PLATE GETTERS + */ + + public ConfigExperienceAcrobatics getExperienceAcrobatics() { + return experienceAcrobatics; + } + + public ConfigExperienceAlchemy getExperienceAlchemy() { + return experienceAlchemy; + } + + public ConfigExperienceArchery getExperienceArchery() { + return experienceArchery; + } + + public ConfigExperienceFishing getExperienceFishing() { + return experienceFishing; + } + + public ConfigExperienceExcavation getExperienceExcavation() { + return experienceExcavation; + } + + public ConfigExperienceWoodcutting getExperienceWoodcutting() { + return experienceWoodcutting; + } + + public ConfigExperienceHerbalism getExperienceHerbalism() { + return experienceHerbalism; + } + + public ConfigExperienceMining getExperienceMining() { + return experienceMining; + } + + public ConfigExperienceRepair getExperienceRepair() { + return experienceRepair; + } + + public ConfigExperienceSmelting getExperienceSmelting() { + return experienceSmelting; + } + + public ConfigExperienceTaming getExperienceTaming() { + return experienceTaming; + } + + public ConfigExperienceCombat getExperienceCombat() { + return experienceCombat; + } + + public HashMap getTamingExperienceMap() { + return experienceTaming.getTamingExperienceMap(); + } + + public HashMap getMiningExperienceMap() { + return experienceMining.getMiningExperienceMap(); + } + + public HashMap getSmeltingExperienceMap() { + return experienceSmelting.getSmeltingExperienceMap(); + } + + public HashMap getItemMaterialXPMultiplier() { + return experienceRepair.getItemMaterialXPMultiplier(); + } + + public double getRepairXPBase() { + return experienceRepair.getRepairXPBase(); + } + + public HashMap getAcrobaticsXPMap() { + return experienceAcrobatics.getAcrobaticsXPMap(); + } + + public Double getFeatherFallMultiplier() { + return experienceAcrobatics.getFeatherFallMultiplier(); + } + + public HashMap getAlchemyXPMap() { + return experienceAlchemy.getAlchemyXPMap(); + } + + public int getDodgeXP() { + return experienceAcrobatics.getDodgeXP(); + } + + public int getRollXP() { + return experienceAcrobatics.getRollXP(); + } + + public int getFallXP() { + return experienceAcrobatics.getFallXP(); + } + + public int getStageOnePotionXP() { + return experienceAlchemy.getStageOnePotionXP(); + } + + public int getStageTwoPotionXP() { + return experienceAlchemy.getStageTwoPotionXP(); + } + + public int getStageThreePotionXP() { + return experienceAlchemy.getStageThreePotionXP(); + } + + public int getStageFourPotionXP() { + return experienceAlchemy.getStageFourPotionXP(); + } + + public int getPotionXPByStage(int potionStage) { + return experienceAlchemy.getPotionXPByStage(potionStage); + } + + public boolean isPvpXPEnabled() { + return experienceCombat.isPvpXPEnabled(); + } + + public HashMap getCombatExperienceMap() { + return experienceCombat.getCombatExperienceMap(); + } + + public double getDistanceMultiplier() { + return experienceArchery.getDistanceMultiplier(); + } + + public HashMap getHerbalismXPMap() { + return experienceHerbalism.getHerbalismXPMap(); + } + + public HashMap getWoodcuttingExperienceMap() { + return experienceWoodcutting.getWoodcuttingExperienceMap(); + } + + public HashMap getExcavationExperienceMap() { + return experienceExcavation.getExcavationExperienceMap(); + } + + public HashMap getFishingXPMap() { + return experienceFishing.getFishingXPMap(); + } + + public int getShakeXP() { + return experienceFishing.getShakeXP(); + } + + public double getSpawnedMobXPMult() { + return experienceCombat.getSpawnedMobXPMult(); + } + + public double getPVPXPMult() { + return experienceCombat.getPVPXPMult(); + } + + public double getAnimalsXPMult() { + return experienceCombat.getAnimalsXPMult(); + } +} diff --git a/src/main/java/com/gmail/nossr50/config/hocon/notifications/ActionBarNotificationSetting.java b/src/main/java/com/gmail/nossr50/config/hocon/notifications/ActionBarNotificationSetting.java index eb09c2949..26d0c0ac9 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/notifications/ActionBarNotificationSetting.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/notifications/ActionBarNotificationSetting.java @@ -4,6 +4,7 @@ public class ActionBarNotificationSetting { public boolean enabled; public boolean sendCopyOfMessageToChat; + public ActionBarNotificationSetting(boolean enabled, boolean sendCopyOfMessageToChat) { this.enabled = enabled; this.sendCopyOfMessageToChat = sendCopyOfMessageToChat; diff --git a/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigExperienceFormula.java b/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigExperienceFormula.java index 77fbf8f3c..15fe5e94c 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigExperienceFormula.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigExperienceFormula.java @@ -21,7 +21,9 @@ public class ConfigExperienceFormula { "\nEXPONENTIAL Formula: multiplier * level ^ exponent + base") private ConfigExperienceFormulaExponential configExperienceFormulaExponential = new ConfigExperienceFormulaExponential(); - @Setting(value = "Use-Cumulative-XP-Curve", comment = "") + @Setting(value = "Use-Cumulative-XP-Curve", comment = "Replaces the value for level used in the XP formulas with a players power level." + + "\nEffectively this makes it much harder to level, especially on exponential curve." + + "\nDefault value: " + CUMULATIVE_CURVE_DEFAULT) private boolean cumulativeCurveEnabled = CUMULATIVE_CURVE_DEFAULT; public FormulaType getFormulaType() { 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 dffd623f4..6811821c3 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 @@ -98,35 +98,35 @@ public class ConfigLeveling { public int getLevelCap(PrimarySkillType primarySkillType) { switch (primarySkillType) { case ACROBATICS: - return configSectionLevelCaps.getConfigSectionSkills().getAcrobatics().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getAcrobatics().getLevelCap(); case ALCHEMY: - return configSectionLevelCaps.getConfigSectionSkills().getAlchemy().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getAlchemy().getLevelCap(); case ARCHERY: - return configSectionLevelCaps.getConfigSectionSkills().getArchery().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getArchery().getLevelCap(); case AXES: - return configSectionLevelCaps.getConfigSectionSkills().getAxes().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getAxes().getLevelCap(); case EXCAVATION: - return configSectionLevelCaps.getConfigSectionSkills().getExcavation().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getExcavation().getLevelCap(); case FISHING: - return configSectionLevelCaps.getConfigSectionSkills().getFishing().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getFishing().getLevelCap(); case HERBALISM: - return configSectionLevelCaps.getConfigSectionSkills().getHerbalism().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getHerbalism().getLevelCap(); case MINING: - return configSectionLevelCaps.getConfigSectionSkills().getMining().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getMining().getLevelCap(); case REPAIR: - return configSectionLevelCaps.getConfigSectionSkills().getRepair().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getRepair().getLevelCap(); case SWORDS: - return configSectionLevelCaps.getConfigSectionSkills().getSwords().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getSwords().getLevelCap(); case TAMING: - return configSectionLevelCaps.getConfigSectionSkills().getTaming().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getTaming().getLevelCap(); case UNARMED: - return configSectionLevelCaps.getConfigSectionSkills().getUnarmed().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getUnarmed().getLevelCap(); case WOODCUTTING: - return configSectionLevelCaps.getConfigSectionSkills().getWoodcutting().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getWoodcutting().getLevelCap(); case SMELTING: - return configSectionLevelCaps.getConfigSectionSkills().getSmelting().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getSmelting().getLevelCap(); case SALVAGE: - return configSectionLevelCaps.getConfigSectionSkills().getSalvage().getLevelCap(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getSalvage().getLevelCap(); default: return Integer.MAX_VALUE; } @@ -135,35 +135,35 @@ public class ConfigLeveling { public boolean isLevelCapEnabled(PrimarySkillType primarySkillType) { switch (primarySkillType) { case ACROBATICS: - return configSectionLevelCaps.getConfigSectionSkills().getAcrobatics().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getAcrobatics().isLevelCapEnabled(); case ALCHEMY: - return configSectionLevelCaps.getConfigSectionSkills().getAlchemy().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getAlchemy().isLevelCapEnabled(); case ARCHERY: - return configSectionLevelCaps.getConfigSectionSkills().getArchery().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getArchery().isLevelCapEnabled(); case AXES: - return configSectionLevelCaps.getConfigSectionSkills().getAxes().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getAxes().isLevelCapEnabled(); case EXCAVATION: - return configSectionLevelCaps.getConfigSectionSkills().getExcavation().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getExcavation().isLevelCapEnabled(); case FISHING: - return configSectionLevelCaps.getConfigSectionSkills().getFishing().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getFishing().isLevelCapEnabled(); case HERBALISM: - return configSectionLevelCaps.getConfigSectionSkills().getHerbalism().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getHerbalism().isLevelCapEnabled(); case MINING: - return configSectionLevelCaps.getConfigSectionSkills().getMining().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getMining().isLevelCapEnabled(); case REPAIR: - return configSectionLevelCaps.getConfigSectionSkills().getRepair().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getRepair().isLevelCapEnabled(); case SWORDS: - return configSectionLevelCaps.getConfigSectionSkills().getSwords().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getSwords().isLevelCapEnabled(); case TAMING: - return configSectionLevelCaps.getConfigSectionSkills().getTaming().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getTaming().isLevelCapEnabled(); case UNARMED: - return configSectionLevelCaps.getConfigSectionSkills().getUnarmed().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getUnarmed().isLevelCapEnabled(); case WOODCUTTING: - return configSectionLevelCaps.getConfigSectionSkills().getWoodcutting().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getWoodcutting().isLevelCapEnabled(); case SMELTING: - return configSectionLevelCaps.getConfigSectionSkills().getSmelting().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getSmelting().isLevelCapEnabled(); case SALVAGE: - return configSectionLevelCaps.getConfigSectionSkills().getSalvage().isLevelCapEnabled(); + return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getSalvage().isLevelCapEnabled(); default: return false; } diff --git a/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigSectionLevelCaps.java b/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigSectionLevelCaps.java index 7f78c7143..dd50b03c3 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigSectionLevelCaps.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigSectionLevelCaps.java @@ -23,7 +23,7 @@ public class ConfigSectionLevelCaps { private ConfigSectionSkillLevelCap powerLevel = new ConfigSectionSkillLevelCap(); @Setting(value = "Skills", comment = "Per Skill cap settings") - private ConfigSectionSkills configSectionSkills = new ConfigSectionSkills(); + private ConfigSectionSkillLevelCaps configSectionSkillLevelCaps = new ConfigSectionSkillLevelCaps(); /* * GETTER BOILERPLATE @@ -37,7 +37,7 @@ public class ConfigSectionLevelCaps { return truncateSkillsAboveCap; } - public ConfigSectionSkills getConfigSectionSkills() { - return configSectionSkills; + public ConfigSectionSkillLevelCaps getConfigSectionSkillLevelCaps() { + return configSectionSkillLevelCaps; } } diff --git a/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigSectionSkills.java b/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigSectionSkillLevelCaps.java similarity index 98% rename from src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigSectionSkills.java rename to src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigSectionSkillLevelCaps.java index ef304fb29..341338439 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigSectionSkills.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/playerleveling/ConfigSectionSkillLevelCaps.java @@ -4,7 +4,7 @@ import ninja.leaping.configurate.objectmapping.Setting; import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; @ConfigSerializable -public class ConfigSectionSkills { +public class ConfigSectionSkillLevelCaps { /* * CONFIG NODES diff --git a/src/main/java/com/gmail/nossr50/util/experience/ExperienceMapManager.java b/src/main/java/com/gmail/nossr50/util/experience/ExperienceMapManager.java index 9de8b00e3..4c7941ff5 100644 --- a/src/main/java/com/gmail/nossr50/util/experience/ExperienceMapManager.java +++ b/src/main/java/com/gmail/nossr50/util/experience/ExperienceMapManager.java @@ -10,10 +10,11 @@ import java.util.HashMap; * This class handles the XP for block break related XP */ public class ExperienceMapManager implements Unload { - public HashMap miningXpMap; - public HashMap herbalismXpMap; - public HashMap woodcuttingXpMap; - public HashMap excavationXpMap; + private HashMap miningXpMap; + private HashMap herbalismXpMap; + private HashMap woodcuttingXpMap; + private HashMap excavationXpMap; + private double globalXpMult; public ExperienceMapManager() { miningXpMap = new HashMap<>(); @@ -25,6 +26,33 @@ public class ExperienceMapManager implements Unload { mcMMO.getConfigManager().registerUnloadable(this); } + /** + * Change the gloabl xp multiplier, this is temporary and will not be serialiized + * @param newValue new global xp multiplier value + */ + public void setGlobalXpMult(double newValue) { + globalXpMult = newValue; + } + + /** + * Gets the current global xp multiplier value + * This value can be changed by the xprate command + * @return + */ + public double getGlobalXpMult() { + return globalXpMult; + } + + /** + * Gets the original value of the global XP multiplier + * This is defined by the users config + * This value can be different from the current working value (due to xprate etc) + * @return the original global xp multiplier value from the user config file + */ + public double getOriginalGlobalXpMult() { + return mcMMO.getConfigManager().getConfigExperience().getGlobalXPMultiplier(); + } + /** * Determines whether or not a block has Mining XP *