mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2025-08-01 20:15:28 +02:00
Refactoring experience manager
This commit is contained in:
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user