Wire up smelting XP values

This commit is contained in:
nossr50 2019-05-13 03:57:23 -07:00
parent d1298c0cd2
commit 2b0931314a
7 changed files with 26 additions and 10 deletions

View File

@ -10,7 +10,6 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.boss.BarColor; import org.bukkit.boss.BarColor;
import org.bukkit.boss.BarStyle; import org.bukkit.boss.BarStyle;
import org.bukkit.entity.EntityType;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;

View File

@ -1,6 +1,5 @@
package com.gmail.nossr50.config.hocon.playerleveling; 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.experience.FormulaType;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;

View File

@ -1,6 +1,5 @@
package com.gmail.nossr50.datatypes.experience; package com.gmail.nossr50.datatypes.experience;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.mcMMO;

View File

@ -3,7 +3,6 @@ package com.gmail.nossr50;
import com.gmail.nossr50.config.ConfigManager; import com.gmail.nossr50.config.ConfigManager;
import com.gmail.nossr50.config.CoreSkillsConfig; import com.gmail.nossr50.config.CoreSkillsConfig;
import com.gmail.nossr50.config.MainConfig; 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.ConfigSectionCleaning;
import com.gmail.nossr50.config.hocon.database.ConfigSectionMySQL; import com.gmail.nossr50.config.hocon.database.ConfigSectionMySQL;
import com.gmail.nossr50.config.hocon.party.ConfigSectionPartyExperienceSharing; import com.gmail.nossr50.config.hocon.party.ConfigSectionPartyExperienceSharing;

View File

@ -1,6 +1,5 @@
package com.gmail.nossr50.runnables.database; package com.gmail.nossr50.runnables.database;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.database.DatabaseManager; import com.gmail.nossr50.database.DatabaseManager;
import com.gmail.nossr50.datatypes.experience.FormulaType; import com.gmail.nossr50.datatypes.experience.FormulaType;
import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.player.McMMOPlayer;

View File

@ -1,8 +1,7 @@
package com.gmail.nossr50.skills.smelting; 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.datatypes.skills.SubSkillType;
import com.gmail.nossr50.mcMMO;
import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.RankUtils;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -14,7 +13,6 @@ public class Smelting {
} }
protected static int getResourceXp(ItemStack 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 mcMMO.getDynamicSettingsManager().getExperienceManager().getFurnaceItemXP(smelting.getType());
return ExperienceConfig.getInstance().getXp(PrimarySkillType.SMELTING, smelting.getType());
} }
} }

View File

@ -18,6 +18,7 @@ public class ExperienceManager {
private HashMap<String, Integer> herbalismFullyQualifiedBlockXpMap; private HashMap<String, Integer> herbalismFullyQualifiedBlockXpMap;
private HashMap<String, Integer> woodcuttingFullyQualifiedBlockXpMap; private HashMap<String, Integer> woodcuttingFullyQualifiedBlockXpMap;
private HashMap<String, Integer> excavationFullyQualifiedBlockXpMap; private HashMap<String, Integer> excavationFullyQualifiedBlockXpMap;
private HashMap<String, Integer> furnaceFullyQualifiedItemXpMap;
private HashMap<EntityType, Float> tamingExperienceMap; private HashMap<EntityType, Float> tamingExperienceMap;
private HashMap<EntityType, Float> combatXPMultiplierMap; private HashMap<EntityType, Float> combatXPMultiplierMap;
private HashMap<SpecialXPKey, Float> specialCombatXPMultiplierMap; //Applies to "groups" of things for convenience private HashMap<SpecialXPKey, Float> specialCombatXPMultiplierMap; //Applies to "groups" of things for convenience
@ -36,6 +37,7 @@ public class ExperienceManager {
herbalismFullyQualifiedBlockXpMap = new HashMap<>(); herbalismFullyQualifiedBlockXpMap = new HashMap<>();
woodcuttingFullyQualifiedBlockXpMap = new HashMap<>(); woodcuttingFullyQualifiedBlockXpMap = new HashMap<>();
excavationFullyQualifiedBlockXpMap = new HashMap<>(); excavationFullyQualifiedBlockXpMap = new HashMap<>();
furnaceFullyQualifiedItemXpMap = new HashMap<>();
combatXPMultiplierMap = new HashMap<>(); combatXPMultiplierMap = new HashMap<>();
specialCombatXPMultiplierMap = new HashMap<>(); specialCombatXPMultiplierMap = new HashMap<>();
tamingExperienceMap = new HashMap<>(); tamingExperienceMap = new HashMap<>();
@ -44,7 +46,9 @@ public class ExperienceManager {
private void registerDefaultValues() private void registerDefaultValues()
{ {
fillCombatXPMultiplierMap(mcMMO.getConfigManager().getConfigExperience().getCombatExperienceMap()); fillCombatXPMultiplierMap(mcMMO.getConfigManager().getConfigExperience().getCombatExperienceMap());
registerSpecialCombatXPMultiplierMap(mcMMO.getConfigManager().getConfigExperience().getSpecialCombatExperienceMap());
buildBlockXPMaps(); buildBlockXPMaps();
buildFurnaceXPMap();
} }
/** /**
@ -78,12 +82,21 @@ public class ExperienceManager {
} }
} }
public void copySpecialCombatXPMultiplierMap(HashMap<SpecialXPKey, Float> map) /**
* Registers the map values for special combat XP to the specified map
* @param map target map
*/
public void registerSpecialCombatXPMultiplierMap(HashMap<SpecialXPKey, Float> map)
{ {
mcMMO.p.getLogger().info("Registering special combat XP values..."); mcMMO.p.getLogger().info("Registering special combat XP values...");
specialCombatXPMultiplierMap = map; 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 * Builds fully qualified name to xp value maps of blocks for XP lookups
* This method servers two purposes * This method servers two purposes
@ -347,6 +360,16 @@ public class ExperienceManager {
return excavationFullyQualifiedBlockXpMap.get(material.getKey()); 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 * Get the XP multiplier value for a special XP group
* @param specialXPKey target special XP group * @param specialXPKey target special XP group