mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 06:36:45 +01:00
Refactoring experience manager
This commit is contained in:
parent
d8841c6ae7
commit
3f6a33dea6
@ -195,7 +195,7 @@ public final class ExperienceAPI {
|
|||||||
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||||
*/
|
*/
|
||||||
public static void addMultipliedXP(Player player, String skillType, int XP, String xpGainReason) {
|
public static void addMultipliedXP(Player player, String skillType, int XP, String xpGainReason) {
|
||||||
getPlayer(player).applyXpGain(getSkillType(skillType), (int) (XP * mcMMO.getDynamicSettingsManager().getExperienceMapManager().getGlobalXpMult()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
getPlayer(player).applyXpGain(getSkillType(skillType), (int) (XP * mcMMO.getDynamicSettingsManager().getExperienceManager().getGlobalXpMult()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -211,7 +211,7 @@ public final class ExperienceAPI {
|
|||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static void addMultipliedXPOffline(String playerName, String skillType, int XP) {
|
public static void addMultipliedXPOffline(String playerName, String skillType, int XP) {
|
||||||
addOfflineXP(playerName, getSkillType(skillType), (int) (XP * mcMMO.getDynamicSettingsManager().getExperienceMapManager().getGlobalXpMult()));
|
addOfflineXP(playerName, getSkillType(skillType), (int) (XP * mcMMO.getDynamicSettingsManager().getExperienceManager().getGlobalXpMult()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -262,11 +262,11 @@ public final class ExperienceAPI {
|
|||||||
PrimarySkillType skill = getSkillType(skillType);
|
PrimarySkillType skill = getSkillType(skillType);
|
||||||
|
|
||||||
if (isUnshared) {
|
if (isUnshared) {
|
||||||
getPlayer(player).beginUnsharedXpGain(skill, (int) (XP / skill.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceMapManager().getGlobalXpMult()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
getPlayer(player).beginUnsharedXpGain(skill, (int) (XP / skill.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceManager().getGlobalXpMult()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
getPlayer(player).applyXpGain(skill, (int) (XP / skill.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceMapManager().getGlobalXpMult()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
getPlayer(player).applyXpGain(skill, (int) (XP / skill.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceManager().getGlobalXpMult()), getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -284,7 +284,7 @@ public final class ExperienceAPI {
|
|||||||
public static void addModifiedXPOffline(String playerName, String skillType, int XP) {
|
public static void addModifiedXPOffline(String playerName, String skillType, int XP) {
|
||||||
PrimarySkillType skill = getSkillType(skillType);
|
PrimarySkillType skill = getSkillType(skillType);
|
||||||
|
|
||||||
addOfflineXP(playerName, skill, (int) (XP / skill.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceMapManager().getGlobalXpMult()));
|
addOfflineXP(playerName, skill, (int) (XP / skill.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceManager().getGlobalXpMult()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1000,8 +1000,8 @@ public final class ExperienceAPI {
|
|||||||
public static void addXpFromBlocks(ArrayList<BlockState> blockStates, McMMOPlayer mcMMOPlayer) {
|
public static void addXpFromBlocks(ArrayList<BlockState> blockStates, McMMOPlayer mcMMOPlayer) {
|
||||||
for (BlockState bs : blockStates) {
|
for (BlockState bs : blockStates) {
|
||||||
for (PrimarySkillType skillType : PrimarySkillType.values()) {
|
for (PrimarySkillType skillType : PrimarySkillType.values()) {
|
||||||
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().getBlockBreakXpValue(skillType, bs.getType()) > 0) {
|
if (mcMMO.getDynamicSettingsManager().getExperienceManager().getBlockBreakXpValue(skillType, bs.getType()) > 0) {
|
||||||
mcMMOPlayer.applyXpGain(skillType, mcMMO.getDynamicSettingsManager().getExperienceMapManager().getBlockBreakXpValue(skillType, bs.getType()), XPGainReason.PVE, XPGainSource.SELF);
|
mcMMOPlayer.applyXpGain(skillType, mcMMO.getDynamicSettingsManager().getExperienceManager().getBlockBreakXpValue(skillType, bs.getType()), XPGainReason.PVE, XPGainSource.SELF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1016,8 +1016,8 @@ public final class ExperienceAPI {
|
|||||||
*/
|
*/
|
||||||
public static void addXpFromBlocksBySkill(ArrayList<BlockState> blockStates, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType) {
|
public static void addXpFromBlocksBySkill(ArrayList<BlockState> blockStates, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType) {
|
||||||
for (BlockState bs : blockStates) {
|
for (BlockState bs : blockStates) {
|
||||||
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().getBlockBreakXpValue(skillType, bs.getType()) > 0) {
|
if (mcMMO.getDynamicSettingsManager().getExperienceManager().getBlockBreakXpValue(skillType, bs.getType()) > 0) {
|
||||||
mcMMOPlayer.applyXpGain(skillType, mcMMO.getDynamicSettingsManager().getExperienceMapManager().getBlockBreakXpValue(skillType, bs.getType()), XPGainReason.PVE, XPGainSource.SELF);
|
mcMMOPlayer.applyXpGain(skillType, mcMMO.getDynamicSettingsManager().getExperienceManager().getBlockBreakXpValue(skillType, bs.getType()), XPGainReason.PVE, XPGainSource.SELF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1030,8 +1030,8 @@ public final class ExperienceAPI {
|
|||||||
*/
|
*/
|
||||||
public static void addXpFromBlock(BlockState blockState, McMMOPlayer mcMMOPlayer) {
|
public static void addXpFromBlock(BlockState blockState, McMMOPlayer mcMMOPlayer) {
|
||||||
for (PrimarySkillType skillType : PrimarySkillType.values()) {
|
for (PrimarySkillType skillType : PrimarySkillType.values()) {
|
||||||
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().getBlockBreakXpValue(skillType, blockState.getType()) > 0) {
|
if (mcMMO.getDynamicSettingsManager().getExperienceManager().getBlockBreakXpValue(skillType, blockState.getType()) > 0) {
|
||||||
mcMMOPlayer.applyXpGain(skillType, mcMMO.getDynamicSettingsManager().getExperienceMapManager().getBlockBreakXpValue(skillType, blockState.getType()), XPGainReason.PVE, XPGainSource.SELF);
|
mcMMOPlayer.applyXpGain(skillType, mcMMO.getDynamicSettingsManager().getExperienceManager().getBlockBreakXpValue(skillType, blockState.getType()), XPGainReason.PVE, XPGainSource.SELF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1044,8 +1044,8 @@ public final class ExperienceAPI {
|
|||||||
* @param skillType target primary skill
|
* @param skillType target primary skill
|
||||||
*/
|
*/
|
||||||
public static void addXpFromBlockBySkill(BlockState blockState, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType) {
|
public static void addXpFromBlockBySkill(BlockState blockState, McMMOPlayer mcMMOPlayer, PrimarySkillType skillType) {
|
||||||
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().getBlockBreakXpValue(skillType, blockState.getType()) > 0) {
|
if (mcMMO.getDynamicSettingsManager().getExperienceManager().getBlockBreakXpValue(skillType, blockState.getType()) > 0) {
|
||||||
mcMMOPlayer.applyXpGain(skillType, mcMMO.getDynamicSettingsManager().getExperienceMapManager().getBlockBreakXpValue(skillType, blockState.getType()), XPGainReason.PVE, XPGainSource.SELF);
|
mcMMOPlayer.applyXpGain(skillType, mcMMO.getDynamicSettingsManager().getExperienceManager().getBlockBreakXpValue(skillType, blockState.getType()), XPGainReason.PVE, XPGainSource.SELF);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class XprateCommand implements TabExecutor {
|
public class XprateCommand implements TabExecutor {
|
||||||
private final double ORIGINAL_XP_RATE = mcMMO.getDynamicSettingsManager().getExperienceMapManager().getGlobalXpMult();
|
private final double ORIGINAL_XP_RATE = mcMMO.getDynamicSettingsManager().getExperienceManager().getGlobalXpMult();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
@ -48,7 +48,7 @@ public class XprateCommand implements TabExecutor {
|
|||||||
mcMMO.p.toggleXpEventEnabled();
|
mcMMO.p.toggleXpEventEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
mcMMO.getDynamicSettingsManager().getExperienceMapManager().resetGlobalXpMult();
|
mcMMO.getDynamicSettingsManager().getExperienceManager().resetGlobalXpMult();
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case 2:
|
case 2:
|
||||||
@ -76,7 +76,7 @@ public class XprateCommand implements TabExecutor {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
mcMMO.getDynamicSettingsManager().getExperienceMapManager().setGlobalXpMult(newXpRate);
|
mcMMO.getDynamicSettingsManager().getExperienceManager().setGlobalXpMult(newXpRate);
|
||||||
|
|
||||||
if (mcMMO.p.isXPEventEnabled()) {
|
if (mcMMO.p.isXPEventEnabled()) {
|
||||||
if (AdvancedConfig.getInstance().useTitlesForXPEvent()) {
|
if (AdvancedConfig.getInstance().useTitlesForXPEvent()) {
|
||||||
|
@ -7,7 +7,7 @@ import com.gmail.nossr50.skills.repair.repairables.Repairable;
|
|||||||
import com.gmail.nossr50.skills.repair.repairables.RepairableManager;
|
import com.gmail.nossr50.skills.repair.repairables.RepairableManager;
|
||||||
import com.gmail.nossr50.skills.salvage.salvageables.Salvageable;
|
import com.gmail.nossr50.skills.salvage.salvageables.Salvageable;
|
||||||
import com.gmail.nossr50.skills.salvage.salvageables.SalvageableManager;
|
import com.gmail.nossr50.skills.salvage.salvageables.SalvageableManager;
|
||||||
import com.gmail.nossr50.util.experience.ExperienceMapManager;
|
import com.gmail.nossr50.util.experience.ExperienceManager;
|
||||||
import com.google.common.collect.Maps;
|
import com.google.common.collect.Maps;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ public class DynamicSettingsManager {
|
|||||||
|
|
||||||
/* Platform Ready Managers */
|
/* Platform Ready Managers */
|
||||||
private BonusDropManager bonusDropManager;
|
private BonusDropManager bonusDropManager;
|
||||||
private ExperienceMapManager experienceMapManager;
|
private ExperienceManager experienceManager;
|
||||||
|
|
||||||
/* Party Settings */
|
/* Party Settings */
|
||||||
private HashMap<Material, Integer> partyItemWeights;
|
private HashMap<Material, Integer> partyItemWeights;
|
||||||
@ -67,11 +67,11 @@ public class DynamicSettingsManager {
|
|||||||
* Misc managers
|
* Misc managers
|
||||||
*/
|
*/
|
||||||
private void initMiscManagers() {
|
private void initMiscManagers() {
|
||||||
experienceMapManager = new ExperienceMapManager();
|
experienceManager = new ExperienceManager();
|
||||||
//Set the global XP val
|
//Set the global XP val
|
||||||
experienceMapManager.setGlobalXpMult(mcMMO.getConfigManager().getConfigExperience().getGlobalXPMultiplier());
|
experienceManager.setGlobalXpMult(mcMMO.getConfigManager().getConfigExperience().getGlobalXPMultiplier());
|
||||||
experienceMapManager.buildBlockXPMaps(); //Block XP value maps
|
experienceManager.buildBlockXPMaps(); //Block XP value maps
|
||||||
experienceMapManager.fillCombatXPMultiplierMap(mcMMO.getConfigManager().getConfigExperience().getCombatExperienceMap());
|
experienceManager.fillCombatXPMultiplierMap(mcMMO.getConfigManager().getConfigExperience().getCombatExperienceMap());
|
||||||
// potionManager = new PotionManager();
|
// potionManager = new PotionManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,8 +127,8 @@ public class DynamicSettingsManager {
|
|||||||
return salvageableManager;
|
return salvageableManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ExperienceMapManager getExperienceMapManager() {
|
public ExperienceManager getExperienceManager() {
|
||||||
return experienceMapManager;
|
return experienceManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
public BonusDropManager getBonusDropManager() {
|
public BonusDropManager getBonusDropManager() {
|
||||||
|
@ -775,7 +775,7 @@ public class McMMOPlayer {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
xp = (float) (xp / primarySkillType.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceMapManager().getGlobalXpMult());
|
xp = (float) (xp / primarySkillType.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceManager().getGlobalXpMult());
|
||||||
|
|
||||||
//Multiply by the players personal XP rate
|
//Multiply by the players personal XP rate
|
||||||
return xp * personalXPModifiers.get(primarySkillType);
|
return xp * personalXPModifiers.get(primarySkillType);
|
||||||
|
@ -520,7 +520,7 @@ public class PlayerListener implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (plugin.isXPEventEnabled()) {
|
if (plugin.isXPEventEnabled()) {
|
||||||
player.sendMessage(LocaleLoader.getString("XPRate.Event", mcMMO.getDynamicSettingsManager().getExperienceMapManager().getGlobalXpMult()));
|
player.sendMessage(LocaleLoader.getString("XPRate.Event", mcMMO.getDynamicSettingsManager().getExperienceManager().getGlobalXpMult()));
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: Remove this warning
|
//TODO: Remove this warning
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.gmail.nossr50.listeners;
|
package com.gmail.nossr50.listeners;
|
||||||
|
|
||||||
import com.gmail.nossr50.config.MainConfig;
|
import com.gmail.nossr50.config.MainConfig;
|
||||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
|
||||||
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
||||||
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
@ -119,7 +118,7 @@ public class SelfListener implements Listener {
|
|||||||
|
|
||||||
float guaranteedMinimum = mcMMO.getConfigManager().getConfigLeveling().getGuaranteedMinimums() * rawXp;
|
float guaranteedMinimum = mcMMO.getConfigManager().getConfigLeveling().getGuaranteedMinimums() * rawXp;
|
||||||
|
|
||||||
float modifiedThreshold = (float) (threshold / primarySkillType.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceMapManager().getGlobalXpMult());
|
float modifiedThreshold = (float) (threshold / primarySkillType.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceManager().getGlobalXpMult());
|
||||||
float difference = (mcMMOPlayer.getProfile().getRegisteredXpGain(primarySkillType) - modifiedThreshold) / modifiedThreshold;
|
float difference = (mcMMOPlayer.getProfile().getRegisteredXpGain(primarySkillType) - modifiedThreshold) / modifiedThreshold;
|
||||||
|
|
||||||
if (difference > 0) {
|
if (difference > 0) {
|
||||||
|
@ -24,7 +24,7 @@ public class Excavation {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected static int getBlockXP(BlockState blockState) {
|
protected static int getBlockXP(BlockState blockState) {
|
||||||
int xp = mcMMO.getDynamicSettingsManager().getExperienceMapManager().getExcavationXp(blockState.getType());
|
int xp = mcMMO.getDynamicSettingsManager().getExperienceManager().getExcavationXp(blockState.getType());
|
||||||
|
|
||||||
return xp;
|
return xp;
|
||||||
}
|
}
|
||||||
|
@ -148,7 +148,7 @@ public class HerbalismManager extends SkillManager {
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// else {
|
// else {
|
||||||
xp = mcMMO.getDynamicSettingsManager().getExperienceMapManager().getHerbalismXp(blockState.getType());
|
xp = mcMMO.getDynamicSettingsManager().getExperienceManager().getHerbalismXp(blockState.getType());
|
||||||
|
|
||||||
if (!oneBlockPlant) {
|
if (!oneBlockPlant) {
|
||||||
//Kelp is actually two blocks mixed together
|
//Kelp is actually two blocks mixed together
|
||||||
|
@ -32,7 +32,7 @@ public class Mining {
|
|||||||
* @param blockState The {@link BlockState} to check ability activation for
|
* @param blockState The {@link BlockState} to check ability activation for
|
||||||
*/
|
*/
|
||||||
public static int getBlockXp(BlockState blockState) {
|
public static int getBlockXp(BlockState blockState) {
|
||||||
int xp = mcMMO.getDynamicSettingsManager().getExperienceMapManager().getMiningXp(blockState.getType());
|
int xp = mcMMO.getDynamicSettingsManager().getExperienceManager().getMiningXp(blockState.getType());
|
||||||
|
|
||||||
return xp;
|
return xp;
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,7 @@ public class TamingManager extends SkillManager {
|
|||||||
* @param entity The LivingEntity to award XP for
|
* @param entity The LivingEntity to award XP for
|
||||||
*/
|
*/
|
||||||
public void awardTamingXP(LivingEntity entity) {
|
public void awardTamingXP(LivingEntity entity) {
|
||||||
applyXpGain(mcMMO.getDynamicSettingsManager().getExperienceMapManager().getTamingXp(entity.getType()), XPGainReason.PVE);
|
applyXpGain(mcMMO.getDynamicSettingsManager().getExperienceManager().getTamingXp(entity.getType()), XPGainReason.PVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -43,7 +43,7 @@ public final class Woodcutting {
|
|||||||
return mcMMO.getModManager().getBlock(blockState).getXpGain();
|
return mcMMO.getModManager().getBlock(blockState).getXpGain();
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
return mcMMO.getDynamicSettingsManager().getExperienceMapManager().getWoodcuttingXp(blockState.getType());
|
return mcMMO.getDynamicSettingsManager().getExperienceManager().getWoodcuttingXp(blockState.getType());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -129,7 +129,7 @@ public final class BlockUtils {
|
|||||||
* @return true if the block should affected by Green Terra, false otherwise
|
* @return true if the block should affected by Green Terra, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean affectedByGreenTerra(BlockState blockState) {
|
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
|
* @return true if the block should affected by Green Terra, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean affectedByGreenTerra(Material material) {
|
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
|
* otherwise
|
||||||
*/
|
*/
|
||||||
public static Boolean affectedBySuperBreaker(BlockState blockState) {
|
public static Boolean affectedBySuperBreaker(BlockState blockState) {
|
||||||
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasMiningXp(blockState.getType()))
|
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasMiningXp(blockState.getType()))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return isMineable(blockState);
|
return isMineable(blockState);
|
||||||
@ -164,7 +164,7 @@ public final class BlockUtils {
|
|||||||
* otherwise
|
* otherwise
|
||||||
*/
|
*/
|
||||||
public static Boolean affectedBySuperBreaker(Material material) {
|
public static Boolean affectedBySuperBreaker(Material material) {
|
||||||
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasMiningXp(material))
|
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasMiningXp(material))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return isMineable(material);
|
return isMineable(material);
|
||||||
@ -215,7 +215,7 @@ public final class BlockUtils {
|
|||||||
* otherwise
|
* otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean affectedByGigaDrillBreaker(Material material) {
|
public static boolean affectedByGigaDrillBreaker(Material material) {
|
||||||
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasExcavationXp(material))
|
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasExcavationXp(material))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return isDiggable(material);
|
return isDiggable(material);
|
||||||
@ -229,7 +229,7 @@ public final class BlockUtils {
|
|||||||
* otherwise
|
* otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean affectedByGigaDrillBreaker(BlockState blockState) {
|
public static boolean affectedByGigaDrillBreaker(BlockState blockState) {
|
||||||
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasExcavationXp(blockState.getType()))
|
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasExcavationXp(blockState.getType()))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return isDiggable(blockState);
|
return isDiggable(blockState);
|
||||||
@ -281,7 +281,7 @@ public final class BlockUtils {
|
|||||||
* @return true if the block is a log, false otherwise
|
* @return true if the block is a log, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isLog(BlockState blockState) {
|
public static boolean isLog(BlockState blockState) {
|
||||||
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasWoodcuttingXp(blockState.getType()))
|
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasWoodcuttingXp(blockState.getType()))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return isLoggingRelated(blockState);
|
return isLoggingRelated(blockState);
|
||||||
@ -295,7 +295,7 @@ public final class BlockUtils {
|
|||||||
* @return true if the block is a log, false otherwise
|
* @return true if the block is a log, false otherwise
|
||||||
*/
|
*/
|
||||||
public static boolean isLog(Material material) {
|
public static boolean isLog(Material material) {
|
||||||
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasWoodcuttingXp(material))
|
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasWoodcuttingXp(material))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return isLoggingRelated(material);
|
return isLoggingRelated(material);
|
||||||
|
@ -10,9 +10,9 @@ import org.bukkit.entity.EntityType;
|
|||||||
import java.util.HashMap;
|
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<PrimarySkillType, HashMap<Material, String>> skillMaterialXPMap;
|
||||||
private HashMap<String, Integer> miningFullyQualifiedBlockXpMap;
|
private HashMap<String, Integer> miningFullyQualifiedBlockXpMap;
|
||||||
private HashMap<String, Integer> herbalismFullyQualifiedBlockXpMap;
|
private HashMap<String, Integer> herbalismFullyQualifiedBlockXpMap;
|
||||||
@ -24,7 +24,7 @@ public class ExperienceMapManager {
|
|||||||
|
|
||||||
private double globalXpMult;
|
private double globalXpMult;
|
||||||
|
|
||||||
public ExperienceMapManager() {
|
public ExperienceManager() {
|
||||||
initExperienceMaps();
|
initExperienceMaps();
|
||||||
registerDefaultValues();
|
registerDefaultValues();
|
||||||
|
|
||||||
@ -167,28 +167,47 @@ public class ExperienceMapManager {
|
|||||||
globalXpMult = newGlobalXpMult;
|
globalXpMult = newGlobalXpMult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reset the Global XP multiplier to its original value
|
||||||
|
*/
|
||||||
public void resetGlobalXpMult() {
|
public void resetGlobalXpMult() {
|
||||||
mcMMO.p.getLogger().info("Resetting the global XP multiplier " + globalXpMult + " -> " + getOriginalGlobalXpMult());
|
mcMMO.p.getLogger().info("Resetting the global XP multiplier " + globalXpMult + " -> " + getOriginalGlobalXpMult());
|
||||||
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) {
|
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;
|
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) {
|
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;
|
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) {
|
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;
|
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) {
|
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;
|
this.excavationFullyQualifiedBlockXpMap = excavationFullyQualifiedBlockXpMap;
|
||||||
}
|
}
|
||||||
|
|
@ -1,6 +1,5 @@
|
|||||||
package com.gmail.nossr50.util.skills;
|
package com.gmail.nossr50.util.skills;
|
||||||
|
|
||||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
|
||||||
import com.gmail.nossr50.core.MetadataConstants;
|
import com.gmail.nossr50.core.MetadataConstants;
|
||||||
import com.gmail.nossr50.datatypes.experience.SpecialXPKey;
|
import com.gmail.nossr50.datatypes.experience.SpecialXPKey;
|
||||||
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
import com.gmail.nossr50.datatypes.experience.XPGainReason;
|
||||||
@ -553,21 +552,21 @@ public final class CombatUtils {
|
|||||||
}*/
|
}*/
|
||||||
//else if (target instanceof Animals) {
|
//else if (target instanceof Animals) {
|
||||||
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) {
|
} else if (target instanceof Monster) {
|
||||||
EntityType type = target.getType();
|
EntityType type = target.getType();
|
||||||
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceMapManager().getCombatXPMultiplier(type);
|
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceManager().getCombatXPMultiplier(type);
|
||||||
} else {
|
} else {
|
||||||
EntityType type = target.getType();
|
EntityType type = target.getType();
|
||||||
|
|
||||||
if (mcMMO.getDynamicSettingsManager().getExperienceMapManager().hasCombatXP(type)) {
|
if (mcMMO.getDynamicSettingsManager().getExperienceManager().hasCombatXP(type)) {
|
||||||
//Exploit stuff
|
//Exploit stuff
|
||||||
if (type == EntityType.IRON_GOLEM) {
|
if (type == EntityType.IRON_GOLEM) {
|
||||||
if (!((IronGolem) target).isPlayerCreated()) {
|
if (!((IronGolem) target).isPlayerCreated()) {
|
||||||
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceMapManager().getCombatXPMultiplier(type);
|
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceManager().getCombatXPMultiplier(type);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceMapManager().getCombatXPMultiplier(type);
|
baseXPMultiplier = mcMMO.getDynamicSettingsManager().getExperienceManager().getCombatXPMultiplier(type);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
baseXPMultiplier = 1.0f;
|
baseXPMultiplier = 1.0f;
|
||||||
|
Loading…
Reference in New Issue
Block a user