From 2b0931314a83166226d48544c7caf8f08c5e3841 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Mon, 13 May 2019 03:57:23 -0700 Subject: [PATCH] Wire up smelting XP values --- .../config/experience/ExperienceConfig.java | 1 - .../hocon/playerleveling/ConfigLeveling.java | 1 - .../datatypes/experience/SkillXpGain.java | 1 - src/main/java/com/gmail/nossr50/mcMMO.java | 1 - .../database/FormulaConversionTask.java | 1 - .../nossr50/skills/smelting/Smelting.java | 6 ++--- .../util/experience/ExperienceManager.java | 25 ++++++++++++++++++- 7 files changed, 26 insertions(+), 10 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 8c353dc84..06937d443 100644 --- a/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java +++ b/src/main/java/com/gmail/nossr50/config/experience/ExperienceConfig.java @@ -10,7 +10,6 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable; import org.bukkit.Material; import org.bukkit.boss.BarColor; import org.bukkit.boss.BarStyle; -import org.bukkit.entity.EntityType; import java.util.ArrayList; import java.util.List; 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 ce4d2d790..faf669f5f 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 @@ -1,6 +1,5 @@ package com.gmail.nossr50.config.hocon.playerleveling; -import com.gmail.nossr50.api.exceptions.InvalidSkillException; import com.gmail.nossr50.datatypes.experience.FormulaType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.mcMMO; diff --git a/src/main/java/com/gmail/nossr50/datatypes/experience/SkillXpGain.java b/src/main/java/com/gmail/nossr50/datatypes/experience/SkillXpGain.java index 695e71a69..59d85863d 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/experience/SkillXpGain.java +++ b/src/main/java/com/gmail/nossr50/datatypes/experience/SkillXpGain.java @@ -1,6 +1,5 @@ package com.gmail.nossr50.datatypes.experience; -import com.gmail.nossr50.config.experience.ExperienceConfig; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.mcMMO; diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index 5ba8fab3c..d6e4ca1a9 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -3,7 +3,6 @@ package com.gmail.nossr50; import com.gmail.nossr50.config.ConfigManager; import com.gmail.nossr50.config.CoreSkillsConfig; import com.gmail.nossr50.config.MainConfig; -import com.gmail.nossr50.config.experience.ExperienceConfig; import com.gmail.nossr50.config.hocon.database.ConfigSectionCleaning; import com.gmail.nossr50.config.hocon.database.ConfigSectionMySQL; import com.gmail.nossr50.config.hocon.party.ConfigSectionPartyExperienceSharing; diff --git a/src/main/java/com/gmail/nossr50/runnables/database/FormulaConversionTask.java b/src/main/java/com/gmail/nossr50/runnables/database/FormulaConversionTask.java index 8c11ddaf7..145c6e642 100644 --- a/src/main/java/com/gmail/nossr50/runnables/database/FormulaConversionTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/database/FormulaConversionTask.java @@ -1,6 +1,5 @@ package com.gmail.nossr50.runnables.database; -import com.gmail.nossr50.config.experience.ExperienceConfig; import com.gmail.nossr50.database.DatabaseManager; import com.gmail.nossr50.datatypes.experience.FormulaType; import com.gmail.nossr50.datatypes.player.McMMOPlayer; diff --git a/src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java b/src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java index 0aa00b58d..8557cc163 100644 --- a/src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java +++ b/src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java @@ -1,8 +1,7 @@ package com.gmail.nossr50.skills.smelting; -import com.gmail.nossr50.config.experience.ExperienceConfig; -import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.SubSkillType; +import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.util.skills.RankUtils; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -14,7 +13,6 @@ public class Smelting { } protected static int getResourceXp(ItemStack smelting) { - //return mcMMO.getModManager().isCustomOre(smelting.getType()) ? mcMMO.getModManager().getBlock(smelting.getType()).getSmeltingXpGain() : ExperienceConfig.getInstance().getXp(PrimarySkillType.SMELTING, smelting.getType()); - return ExperienceConfig.getInstance().getXp(PrimarySkillType.SMELTING, smelting.getType()); + return mcMMO.getDynamicSettingsManager().getExperienceManager().getFurnaceItemXP(smelting.getType()); } } diff --git a/src/main/java/com/gmail/nossr50/util/experience/ExperienceManager.java b/src/main/java/com/gmail/nossr50/util/experience/ExperienceManager.java index 0edbc5cb7..067497619 100644 --- a/src/main/java/com/gmail/nossr50/util/experience/ExperienceManager.java +++ b/src/main/java/com/gmail/nossr50/util/experience/ExperienceManager.java @@ -18,6 +18,7 @@ public class ExperienceManager { private HashMap herbalismFullyQualifiedBlockXpMap; private HashMap woodcuttingFullyQualifiedBlockXpMap; private HashMap excavationFullyQualifiedBlockXpMap; + private HashMap furnaceFullyQualifiedItemXpMap; private HashMap tamingExperienceMap; private HashMap combatXPMultiplierMap; private HashMap specialCombatXPMultiplierMap; //Applies to "groups" of things for convenience @@ -36,6 +37,7 @@ public class ExperienceManager { herbalismFullyQualifiedBlockXpMap = new HashMap<>(); woodcuttingFullyQualifiedBlockXpMap = new HashMap<>(); excavationFullyQualifiedBlockXpMap = new HashMap<>(); + furnaceFullyQualifiedItemXpMap = new HashMap<>(); combatXPMultiplierMap = new HashMap<>(); specialCombatXPMultiplierMap = new HashMap<>(); tamingExperienceMap = new HashMap<>(); @@ -44,7 +46,9 @@ public class ExperienceManager { private void registerDefaultValues() { fillCombatXPMultiplierMap(mcMMO.getConfigManager().getConfigExperience().getCombatExperienceMap()); + registerSpecialCombatXPMultiplierMap(mcMMO.getConfigManager().getConfigExperience().getSpecialCombatExperienceMap()); buildBlockXPMaps(); + buildFurnaceXPMap(); } /** @@ -78,12 +82,21 @@ public class ExperienceManager { } } - public void copySpecialCombatXPMultiplierMap(HashMap map) + /** + * Registers the map values for special combat XP to the specified map + * @param map target map + */ + public void registerSpecialCombatXPMultiplierMap(HashMap map) { mcMMO.p.getLogger().info("Registering special combat XP values..."); specialCombatXPMultiplierMap = map; } + private void buildFurnaceXPMap() { + mcMMO.p.getLogger().info("Mapping xp values for furnaces..."); + fillBlockXPMap(mcMMO.getConfigManager().getConfigExperience().getSmeltingExperienceMap(), furnaceFullyQualifiedItemXpMap); + } + /** * Builds fully qualified name to xp value maps of blocks for XP lookups * This method servers two purposes @@ -347,6 +360,16 @@ public class ExperienceManager { return excavationFullyQualifiedBlockXpMap.get(material.getKey()); } + /** + * Gets the XP value for converting an item in the furnace + * + * @param material the target item material value + * @return the raw XP value before any modifiers are applied + */ + public int getFurnaceItemXP(Material material) { + return furnaceFullyQualifiedItemXpMap.get(material.getKey()); + } + /** * Get the XP multiplier value for a special XP group * @param specialXPKey target special XP group