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 da4229599..9266bea7d 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 @@ -2,6 +2,7 @@ package com.gmail.nossr50.config.hocon.experience; import com.gmail.nossr50.datatypes.experience.CustomXPPerk; import com.gmail.nossr50.datatypes.experience.SpecialXPKey; +import com.gmail.nossr50.datatypes.skills.ItemMaterialCategory; import ninja.leaping.configurate.objectmapping.Setting; import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; @@ -103,8 +104,8 @@ public class ConfigExperience { return getConfigExperienceSkills().getSmeltingExperienceMap(); } - public HashMap getItemMaterialXPMultiplier() { - return getConfigExperienceSkills().getItemMaterialXPMultiplier(); + public float getItemMaterialXPMultiplier(ItemMaterialCategory itemMaterialCategory) { + return getConfigExperienceSkills().getItemMaterialXPMultiplier(itemMaterialCategory); } public Float getRepairXPBase() { diff --git a/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceRepair.java b/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceRepair.java index eb92e7f8d..ec822f658 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceRepair.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceRepair.java @@ -11,24 +11,24 @@ public class ConfigExperienceRepair { private static final float REPAIR_XP_BASE_DEFAULT = 1000.0F; - private static final HashMap ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT; + private static final HashMap ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT; static { ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT = new HashMap<>(); - ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.WOOD.toString(), 0.6F); - ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.STONE.toString(), 1.3F); - ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.IRON.toString(), 2.5F); - ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.GOLD.toString(), 0.3F); - ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.DIAMOND.toString(), 5.0F); - ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.LEATHER.toString(), 1.6F); - ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.STRING.toString(), 1.8F); - ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.OTHER.toString(), 1.5F); + ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.WOOD, 0.6F); + ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.STONE, 1.3F); + ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.IRON, 2.5F); + ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.GOLD, 0.3F); + ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.DIAMOND, 5.0F); + ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.LEATHER, 1.6F); + ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.STRING, 1.8F); + ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.OTHER, 1.5F); } @Setting(value = "Item-Material-Category-XP-Multiplier", comment = "The material of your item is determined by mcMMO and used to influence XP, " + "if your Item doesn't fit into a known category it will use OTHER." + "\nFor the most part, items belong to categories of materials that they are made out of.") - private HashMap itemMaterialXPMultiplier = ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT; + private HashMap itemMaterialXPMultiplier = ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT; @Setting(value = "Repair-XP-Base", comment = "The base amount of XP for repairing an item." + "\nThe repair XP formula is a simple multiplication of these 4 values in this order" + @@ -39,8 +39,8 @@ public class ConfigExperienceRepair { "\nDefault value: " + REPAIR_XP_BASE_DEFAULT) private Float repairXPBase = REPAIR_XP_BASE_DEFAULT; - public HashMap getItemMaterialXPMultiplier() { - return itemMaterialXPMultiplier; + public float getItemMaterialXPMultiplier(ItemMaterialCategory itemMaterialCategory) { + return itemMaterialXPMultiplier.get(itemMaterialCategory); } public Float getRepairXPBase() { 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 index 1a484b08c..10b46c405 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceSkills.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/experience/ConfigExperienceSkills.java @@ -1,6 +1,7 @@ package com.gmail.nossr50.config.hocon.experience; import com.gmail.nossr50.datatypes.experience.SpecialXPKey; +import com.gmail.nossr50.datatypes.skills.ItemMaterialCategory; import ninja.leaping.configurate.objectmapping.Setting; import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; @@ -108,8 +109,8 @@ public class ConfigExperienceSkills { return experienceSmelting.getSmeltingExperienceMap(); } - public HashMap getItemMaterialXPMultiplier() { - return experienceRepair.getItemMaterialXPMultiplier(); + public float getItemMaterialXPMultiplier(ItemMaterialCategory itemMaterialCategory) { + return experienceRepair.getItemMaterialXPMultiplier(itemMaterialCategory); } public float getRepairXPBase() { diff --git a/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java b/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java index 3761bdb5e..4f0bfe92b 100644 --- a/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java +++ b/src/main/java/com/gmail/nossr50/skills/repair/RepairManager.java @@ -176,8 +176,8 @@ public class RepairManager extends SkillManager { // Give out XP like candy applyXpGain((float) ((getPercentageRepaired(startDurability, newDurability, repairable.getMaximumDurability()) * repairable.getXpMultiplier()) - * ExperienceConfig.getInstance().getRepairXPBase() - * ExperienceConfig.getInstance().getRepairXP(repairable.getRepairItemMaterialCategory())), XPGainReason.PVE); + * mcMMO.getConfigManager().getConfigExperience().getRepairXPBase()) + * mcMMO.getConfigManager().getConfigExperience().getExperienceRepair().getItemMaterialXPMultiplier(repairable.getRepairItemMaterialCategory()), XPGainReason.PVE); // BWONG BWONG BWONG if (mcMMO.getConfigManager().getConfigRepair().getRepairGeneral().isAnvilUseSounds()) {