Refactoring experience manager

This commit is contained in:
nossr50
2019-05-13 03:39:24 -07:00
parent d8841c6ae7
commit 3f6a33dea6
14 changed files with 71 additions and 54 deletions

View File

@@ -129,7 +129,7 @@ public final class BlockUtils {
* @return true if the block should affected by Green Terra, false otherwise
*/
public static boolean affectedByGreenTerra(BlockState blockState) {
return mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasHerbalismXp(blockState.getType());
return mcMMO.getDynamicSettingsManager().getExperienceManager().hasHerbalismXp(blockState.getType());
}
/**
@@ -139,7 +139,7 @@ public final class BlockUtils {
* @return true if the block should affected by Green Terra, false otherwise
*/
public static boolean affectedByGreenTerra(Material material) {
return mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasHerbalismXp(material);
return mcMMO.getDynamicSettingsManager().getExperienceManager().hasHerbalismXp(material);
}
/**
@@ -150,7 +150,7 @@ public final class BlockUtils {
* otherwise
*/
public static Boolean affectedBySuperBreaker(BlockState blockState) {
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasMiningXp(blockState.getType()))
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasMiningXp(blockState.getType()))
return true;
return isMineable(blockState);
@@ -164,7 +164,7 @@ public final class BlockUtils {
* otherwise
*/
public static Boolean affectedBySuperBreaker(Material material) {
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasMiningXp(material))
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasMiningXp(material))
return true;
return isMineable(material);
@@ -215,7 +215,7 @@ public final class BlockUtils {
* otherwise
*/
public static boolean affectedByGigaDrillBreaker(Material material) {
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasExcavationXp(material))
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasExcavationXp(material))
return true;
return isDiggable(material);
@@ -229,7 +229,7 @@ public final class BlockUtils {
* otherwise
*/
public static boolean affectedByGigaDrillBreaker(BlockState blockState) {
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasExcavationXp(blockState.getType()))
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasExcavationXp(blockState.getType()))
return true;
return isDiggable(blockState);
@@ -281,7 +281,7 @@ public final class BlockUtils {
* @return true if the block is a log, false otherwise
*/
public static boolean isLog(BlockState blockState) {
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasWoodcuttingXp(blockState.getType()))
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasWoodcuttingXp(blockState.getType()))
return true;
return isLoggingRelated(blockState);
@@ -295,7 +295,7 @@ public final class BlockUtils {
* @return true if the block is a log, false otherwise
*/
public static boolean isLog(Material material) {
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasWoodcuttingXp(material))
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasWoodcuttingXp(material))
return true;
return isLoggingRelated(material);

View File

@@ -10,9 +10,9 @@ import org.bukkit.entity.EntityType;
import java.util.HashMap;
/**
* This class handles the XP for block break related XP
* This class handles the XP maps for various skills
*/
public class ExperienceMapManager {
public class ExperienceManager {
private HashMap<PrimarySkillType, HashMap<Material, String>> skillMaterialXPMap;
private HashMap<String, Integer> miningFullyQualifiedBlockXpMap;
private HashMap<String, Integer> herbalismFullyQualifiedBlockXpMap;
@@ -24,7 +24,7 @@ public class ExperienceMapManager {
private double globalXpMult;
public ExperienceMapManager() {
public ExperienceManager() {
initExperienceMaps();
registerDefaultValues();
@@ -167,28 +167,47 @@ public class ExperienceMapManager {
globalXpMult = newGlobalXpMult;
}
/**
* Reset the Global XP multiplier to its original value
*/
public void resetGlobalXpMult() {
mcMMO.p.getLogger().info("Resetting the global XP multiplier " + globalXpMult + " -> " + getOriginalGlobalXpMult());
globalXpMult = getOriginalGlobalXpMult();
}
/**
* Set the mining block XP map to the provided one
* @param miningFullyQualifiedBlockXpMap the XP map to change to
*/
public void setMiningFullyQualifiedBlockXpMap(HashMap<String, Integer> miningFullyQualifiedBlockXpMap) {
mcMMO.p.getLogger().info("Registering Mining XP Values...");
mcMMO.p.getLogger().info("Changing Mining XP Values...");
this.miningFullyQualifiedBlockXpMap = miningFullyQualifiedBlockXpMap;
}
/**
* Set the mining block XP map to the provided one
* @param herbalismFullyQualifiedBlockXpMap the XP map to change to
*/
public void setHerbalismFullyQualifiedBlockXpMap(HashMap<String, Integer> herbalismFullyQualifiedBlockXpMap) {
mcMMO.p.getLogger().info("Registering Herbalism XP Values...");
mcMMO.p.getLogger().info("Changing Herbalism XP Values...");
this.herbalismFullyQualifiedBlockXpMap = herbalismFullyQualifiedBlockXpMap;
}
/**
* Set the mining block XP map to the provided one
* @param woodcuttingFullyQualifiedBlockXpMap the XP map to change to
*/
public void setWoodcuttingFullyQualifiedBlockXpMap(HashMap<String, Integer> woodcuttingFullyQualifiedBlockXpMap) {
mcMMO.p.getLogger().info("Registering Woodcutting XP Values...");
mcMMO.p.getLogger().info("Changin Woodcutting XP Values...");
this.woodcuttingFullyQualifiedBlockXpMap = woodcuttingFullyQualifiedBlockXpMap;
}
/**
* Set the mining block XP map to the provided one
* @param excavationFullyQualifiedBlockXpMap the XP map to change to
*/
public void setExcavationFullyQualifiedBlockXpMap(HashMap<String, Integer> excavationFullyQualifiedBlockXpMap) {
mcMMO.p.getLogger().info("Registering Excavation XP Values...");
mcMMO.p.getLogger().info("Changing Excavation XP Values...");
this.excavationFullyQualifiedBlockXpMap = excavationFullyQualifiedBlockXpMap;
}

View File

@@ -1,6 +1,5 @@
package com.gmail.nossr50.util.skills;
import com.gmail.nossr50.config.experience.ExperienceConfig;
import com.gmail.nossr50.core.MetadataConstants;
import com.gmail.nossr50.datatypes.experience.SpecialXPKey;
import com.gmail.nossr50.datatypes.experience.XPGainReason;
@@ -553,21 +552,21 @@ public final class CombatUtils {
}*/
//else if (target instanceof Animals) {
if (target instanceof Animals) {
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceMapManager().getSpecialCombatXP(SpecialXPKey.ANIMALS);
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceManager().getSpecialCombatXP(SpecialXPKey.ANIMALS);
} else if (target instanceof Monster) {
EntityType type = target.getType();
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceMapManager().getCombatXPMultiplier(type);
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceManager().getCombatXPMultiplier(type);
} else {
EntityType type = target.getType();
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasCombatXP(type)) {
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasCombatXP(type)) {
//Exploit stuff
if (type == EntityType.IRON_GOLEM) {
if (!((IronGolem) target).isPlayerCreated()) {
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceMapManager().getCombatXPMultiplier(type);
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceManager().getCombatXPMultiplier(type);
}
} else {
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceMapManager().getCombatXPMultiplier(type);
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceManager().getCombatXPMultiplier(type);
}
} else {
baseXPMultiplier = 1.0f;