mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 06:36:45 +01:00
Add + Wire DiminishingReturn config values
Removed the experience multiplier from the xp conversion task, it just seems like something very unecessary
This commit is contained in:
parent
6425cd18b8
commit
2e3f9b4a96
@ -138,7 +138,7 @@ Version 2.2.0
|
|||||||
Update_Check, Prefer_Beta, Ability_Activation_Level_Gate, Max_Tries_At_Same_Location, Prevent_AFK_Leveling, Items_Pickup_Disabled_Full_Inventory
|
Update_Check, Prefer_Beta, Ability_Activation_Level_Gate, Max_Tries_At_Same_Location, Prevent_AFK_Leveling, Items_Pickup_Disabled_Full_Inventory
|
||||||
|
|
||||||
Removed the following config settings for being unwanted
|
Removed the following config settings for being unwanted
|
||||||
Config_Update_Overwrite, Tool_Mods_Enabled, Armor_Mods_Enabled, Block_Mods_Enabled, Entity_Mods_Enabled,
|
Config_Update_Overwrite, Tool_Mods_Enabled, Armor_Mods_Enabled, Block_Mods_Enabled, Entity_Mods_Enabled, ExperienceConversionMultiplier
|
||||||
|
|
||||||
API Changes
|
API Changes
|
||||||
Config settings can now be found in the ConfigManager (getter for it in mcMMO.java)
|
Config settings can now be found in the ConfigManager (getter for it in mcMMO.java)
|
||||||
@ -150,6 +150,7 @@ Version 2.2.0
|
|||||||
Added API method to check if player parties are size capped
|
Added API method to check if player parties are size capped
|
||||||
Added API method to grab the level cap of a skill by its PrimarySkillType ENUM definition
|
Added API method to grab the level cap of a skill by its PrimarySkillType ENUM definition
|
||||||
Added API method to check if a skill was being level capped
|
Added API method to check if a skill was being level capped
|
||||||
|
Added 'UndefinedSkillBehaviour' for trying to use a method that has no behaviour defined for the provided skill
|
||||||
|
|
||||||
Version 2.1.58
|
Version 2.1.58
|
||||||
Fixed the wrong locale string being used for Mining Double Drops
|
Fixed the wrong locale string being used for Mining Double Drops
|
||||||
|
@ -1092,7 +1092,7 @@ public final class ExperienceAPI {
|
|||||||
PrimarySkillType skill = PrimarySkillType.getSkill(skillType);
|
PrimarySkillType skill = PrimarySkillType.getSkill(skillType);
|
||||||
|
|
||||||
if (skill == null) {
|
if (skill == null) {
|
||||||
throw new InvalidSkillException();
|
throw new InvalidSkillException(skillType);
|
||||||
}
|
}
|
||||||
|
|
||||||
return skill;
|
return skill;
|
||||||
|
@ -3,7 +3,7 @@ package com.gmail.nossr50.api.exceptions;
|
|||||||
public class InvalidSkillException extends RuntimeException {
|
public class InvalidSkillException extends RuntimeException {
|
||||||
private static final long serialVersionUID = 942705284195791157L;
|
private static final long serialVersionUID = 942705284195791157L;
|
||||||
|
|
||||||
public InvalidSkillException() {
|
public InvalidSkillException(String s) {
|
||||||
super("That is not a valid skill.");
|
super(s+" does not match a valid skill.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,9 @@
|
|||||||
|
package com.gmail.nossr50.api.exceptions;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
|
|
||||||
|
public class UndefinedSkillBehaviour extends RuntimeException {
|
||||||
|
public UndefinedSkillBehaviour(PrimarySkillType primarySkillType) {
|
||||||
|
super("Undefined behaviour for skill! - "+primarySkillType.toString());
|
||||||
|
}
|
||||||
|
}
|
@ -50,7 +50,6 @@ import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
|||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.skills.repair.repairables.Repairable;
|
import com.gmail.nossr50.skills.repair.repairables.Repairable;
|
||||||
import com.gmail.nossr50.skills.salvage.salvageables.Salvageable;
|
import com.gmail.nossr50.skills.salvage.salvageables.Salvageable;
|
||||||
import com.google.common.collect.Maps;
|
|
||||||
import com.google.common.reflect.TypeToken;
|
import com.google.common.reflect.TypeToken;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.TypeSerializerCollection;
|
import ninja.leaping.configurate.objectmapping.serialize.TypeSerializerCollection;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.TypeSerializers;
|
import ninja.leaping.configurate.objectmapping.serialize.TypeSerializers;
|
||||||
|
@ -122,33 +122,6 @@ public class ExperienceConfig extends ConfigValidated {
|
|||||||
config.set(EXPERIENCE_FORMULA, MULTIPLIER, GLOBAL, value);
|
config.set(EXPERIENCE_FORMULA, MULTIPLIER, GLOBAL, value);
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
/* Custom XP perk */
|
|
||||||
public double getCustomXpPerkBoost() {
|
|
||||||
return getDoubleValue(EXPERIENCE_FORMULA, CUSTOM_XP_PERK, BOOST);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Diminished Returns */
|
|
||||||
public float getDiminishedReturnsCap() {
|
|
||||||
return (float) getDoubleValue(DIMISHED_RETURNS, GUARANTEED_MINIMUM_PERCENTAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean getDiminishedReturnsEnabled() {
|
|
||||||
return getBooleanValue(DIMINISHED_RETURNS, ENABLED);
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getDiminishedReturnsThreshold(PrimarySkillType skill) {
|
|
||||||
return getIntValue(DIMINISHED_RETURNS, THRESHOLD, StringUtils.getCapitalized(skill.toString()));
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getDiminishedReturnsTimeInterval() {
|
|
||||||
return getIntValue(DIMINISHED_RETURNS, TIME_INTERVAL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Conversion */
|
|
||||||
public double getExpModifier() {
|
|
||||||
return getDoubleValue(CONVERSION, EXP + MODIFIER);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XP SETTINGS
|
* XP SETTINGS
|
||||||
*/
|
*/
|
||||||
|
@ -64,7 +64,7 @@ public class CustomXPPerkSerializer implements TypeSerializer<CustomXPPerk> {
|
|||||||
return primarySkillType;
|
return primarySkillType;
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new InvalidSkillException();
|
throw new InvalidSkillException(string);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1,10 +1,14 @@
|
|||||||
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 ninja.leaping.configurate.objectmapping.Setting;
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
@ConfigSerializable
|
@ConfigSerializable
|
||||||
public class ConfigLeveling {
|
public class ConfigLeveling {
|
||||||
|
|
||||||
@ -27,10 +31,37 @@ public class ConfigLeveling {
|
|||||||
@Setting(value = "Experience-Formula")
|
@Setting(value = "Experience-Formula")
|
||||||
private ConfigExperienceFormula configExperienceFormula = new ConfigExperienceFormula();
|
private ConfigExperienceFormula configExperienceFormula = new ConfigExperienceFormula();
|
||||||
|
|
||||||
|
@Setting(value = "Diminished-Returns", comment = "Penalize players for gaining XP too quickly in a given time period.")
|
||||||
|
private ConfigLevelingDiminishedReturns configLevelingDiminishedReturns = new ConfigLevelingDiminishedReturns();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* GETTER BOILERPLATE
|
* GETTER BOILERPLATE
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
public float getGuaranteedMinimums() {
|
||||||
|
return configLevelingDiminishedReturns.getGuaranteedMinimums();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isDiminishedReturnsEnabled() {
|
||||||
|
return configLevelingDiminishedReturns.isDiminishedReturnsEnabled();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDimishedReturnTimeInterval() {
|
||||||
|
return configLevelingDiminishedReturns.getDimishedReturnTimeInterval();
|
||||||
|
}
|
||||||
|
|
||||||
|
public HashMap<PrimarySkillType, Integer> getSkillThresholds() {
|
||||||
|
return configLevelingDiminishedReturns.getSkillThresholds();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSkillThreshold(PrimarySkillType primarySkillType) {
|
||||||
|
return configLevelingDiminishedReturns.getSkillThreshold(primarySkillType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ConfigLevelingDiminishedReturns getConfigLevelingDiminishedReturns() {
|
||||||
|
return configLevelingDiminishedReturns;
|
||||||
|
}
|
||||||
|
|
||||||
public double getSkillXpFormulaModifier(PrimarySkillType primarySkillType) {
|
public double getSkillXpFormulaModifier(PrimarySkillType primarySkillType) {
|
||||||
return getConfigExperienceFormula().getSkillXpFormulaModifier(primarySkillType);
|
return getConfigExperienceFormula().getSkillXpFormulaModifier(primarySkillType);
|
||||||
}
|
}
|
||||||
@ -152,6 +183,7 @@ public class ConfigLeveling {
|
|||||||
case SALVAGE:
|
case SALVAGE:
|
||||||
return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getSalvage().getLevelCap();
|
return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getSalvage().getLevelCap();
|
||||||
default:
|
default:
|
||||||
|
mcMMO.p.getLogger().severe("No defined level cap for "+primarySkillType.toString()+" - Contact the mcMMO dev team!");
|
||||||
return Integer.MAX_VALUE;
|
return Integer.MAX_VALUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -189,6 +221,7 @@ public class ConfigLeveling {
|
|||||||
case SALVAGE:
|
case SALVAGE:
|
||||||
return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getSalvage().isLevelCapEnabled();
|
return configSectionLevelCaps.getConfigSectionSkillLevelCaps().getSalvage().isLevelCapEnabled();
|
||||||
default:
|
default:
|
||||||
|
mcMMO.p.getLogger().severe("No defined level cap for "+primarySkillType.toString()+" - Contact the mcMMO dev team!");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,86 @@
|
|||||||
|
package com.gmail.nossr50.config.hocon.playerleveling;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
|
import ninja.leaping.configurate.objectmapping.Setting;
|
||||||
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
import static com.gmail.nossr50.datatypes.skills.PrimarySkillType.*;
|
||||||
|
|
||||||
|
@ConfigSerializable
|
||||||
|
public class ConfigLevelingDiminishedReturns {
|
||||||
|
|
||||||
|
/*
|
||||||
|
Diminished_Returns:
|
||||||
|
#This is the minimum amount of XP a player will earn after reaching the timed threshold (this is to prevent punishing a player too hard for earning XP)
|
||||||
|
## A value of 1 would mean that a player gets FULL XP, which defeats the purpose of diminished returns, the default value is 0.05 (5% minimum XP)
|
||||||
|
### Set this value to 0 to turn it off
|
||||||
|
Guaranteed_Minimum_Percentage: 0.05
|
||||||
|
Enabled: false
|
||||||
|
*/
|
||||||
|
|
||||||
|
private static final HashMap<PrimarySkillType, Integer> SKILL_THRESHOLDS_DEFAULT;
|
||||||
|
public static final float GURANTEED_MIN_DEFAULT = 0.05f;
|
||||||
|
|
||||||
|
static {
|
||||||
|
SKILL_THRESHOLDS_DEFAULT = new HashMap<>();
|
||||||
|
SKILL_THRESHOLDS_DEFAULT.put(ACROBATICS, 10000);
|
||||||
|
SKILL_THRESHOLDS_DEFAULT.put(ALCHEMY, 10000);
|
||||||
|
SKILL_THRESHOLDS_DEFAULT.put(ARCHERY, 10000);
|
||||||
|
SKILL_THRESHOLDS_DEFAULT.put(AXES, 10000);
|
||||||
|
SKILL_THRESHOLDS_DEFAULT.put(EXCAVATION, 10000);
|
||||||
|
SKILL_THRESHOLDS_DEFAULT.put(FISHING, 10000);
|
||||||
|
SKILL_THRESHOLDS_DEFAULT.put(HERBALISM, 10000);
|
||||||
|
SKILL_THRESHOLDS_DEFAULT.put(MINING, 10000);
|
||||||
|
SKILL_THRESHOLDS_DEFAULT.put(REPAIR, 10000);
|
||||||
|
SKILL_THRESHOLDS_DEFAULT.put(SWORDS, 10000);
|
||||||
|
SKILL_THRESHOLDS_DEFAULT.put(TAMING, 10000);
|
||||||
|
SKILL_THRESHOLDS_DEFAULT.put(UNARMED, 10000);
|
||||||
|
SKILL_THRESHOLDS_DEFAULT.put(WOODCUTTING, 10000);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final boolean DIMINISHED_RETURNS_DEFAULT = false;
|
||||||
|
private static final int DIMINISHED_TIME_DEFAULT = 10;
|
||||||
|
|
||||||
|
@Setting(value = "Enabled", comment = "Setting this to true will enable Diminished Returns on XP Gains." +
|
||||||
|
"\nDefault value: "+DIMINISHED_RETURNS_DEFAULT)
|
||||||
|
private boolean diminishedReturnsEnabled = DIMINISHED_RETURNS_DEFAULT;
|
||||||
|
|
||||||
|
@Setting(value = "Time-Interval-In-Minutes", comment = "The period of time in which to measure a players XP gain and reduce gains above a threshold during that time" +
|
||||||
|
"\nPlayers will be able to gain up to the threshold of XP in this time period before having their XP drastically reduced" +
|
||||||
|
"\nDefault value: "+DIMINISHED_TIME_DEFAULT)
|
||||||
|
private int dimishedReturnTimeInterval = DIMINISHED_TIME_DEFAULT;
|
||||||
|
|
||||||
|
@Setting(value = "Skill-Thresholds", comment = "The amount of XP that a player can gain without penalty in the defined time interval." +
|
||||||
|
"\nDefault value: 10000 for each skill, undefined skills will default to this value")
|
||||||
|
private HashMap<PrimarySkillType, Integer> skillThresholds = SKILL_THRESHOLDS_DEFAULT;
|
||||||
|
|
||||||
|
@Setting(value = "Guaranteed-Minimum", comment = "The multiplier applied to an XP gain when a player has reached diminishing returns to guarantee that some XP is still gained." +
|
||||||
|
"\nPlayers will gain (raw XP * guaranteedMinimum) if they are under sever enough diminishing return penalty (ie their XP would normally fall below this value)" +
|
||||||
|
"\nDefault value: ")
|
||||||
|
private float guaranteedMinimums = GURANTEED_MIN_DEFAULT;
|
||||||
|
|
||||||
|
public int getSkillThreshold(PrimarySkillType primarySkillType) {
|
||||||
|
if(skillThresholds.get(primarySkillType) == null)
|
||||||
|
return 10000;
|
||||||
|
|
||||||
|
return skillThresholds.get(primarySkillType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public float getGuaranteedMinimums() {
|
||||||
|
return guaranteedMinimums;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isDiminishedReturnsEnabled() {
|
||||||
|
return diminishedReturnsEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getDimishedReturnTimeInterval() {
|
||||||
|
return dimishedReturnTimeInterval;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HashMap<PrimarySkillType, Integer> getSkillThresholds() {
|
||||||
|
return skillThresholds;
|
||||||
|
}
|
||||||
|
}
|
@ -5,12 +5,7 @@ import com.gmail.nossr50.config.ConfigConstants;
|
|||||||
import com.gmail.nossr50.config.UnsafeValueValidation;
|
import com.gmail.nossr50.config.UnsafeValueValidation;
|
||||||
import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure;
|
import com.gmail.nossr50.datatypes.treasure.ExcavationTreasure;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.google.common.reflect.TypeToken;
|
|
||||||
import ninja.leaping.configurate.ConfigurationNode;
|
|
||||||
import ninja.leaping.configurate.objectmapping.ObjectMappingException;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -5,12 +5,6 @@ import com.gmail.nossr50.config.ConfigConstants;
|
|||||||
import com.gmail.nossr50.config.UnsafeValueValidation;
|
import com.gmail.nossr50.config.UnsafeValueValidation;
|
||||||
import com.gmail.nossr50.datatypes.treasure.HylianTreasure;
|
import com.gmail.nossr50.datatypes.treasure.HylianTreasure;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.util.StringUtils;
|
|
||||||
import com.google.common.reflect.TypeToken;
|
|
||||||
import ninja.leaping.configurate.ConfigurationNode;
|
|
||||||
import ninja.leaping.configurate.objectmapping.ObjectMappingException;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.Tag;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -46,6 +46,7 @@ public class BonusDropManager {
|
|||||||
for (String material : materials) {
|
for (String material : materials) {
|
||||||
Material m = Material.matchMaterial(material);
|
Material m = Material.matchMaterial(material);
|
||||||
if (m == null) {
|
if (m == null) {
|
||||||
|
//TODO: reduce to info level?
|
||||||
mcMMO.p.getLogger().severe("Error registering Bonus Drop -- Invalid Minecraft Name ID: " + material);
|
mcMMO.p.getLogger().severe("Error registering Bonus Drop -- Invalid Minecraft Name ID: " + material);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package com.gmail.nossr50.datatypes.experience;
|
|||||||
|
|
||||||
import com.gmail.nossr50.config.experience.ExperienceConfig;
|
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 java.util.concurrent.Delayed;
|
import java.util.concurrent.Delayed;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@ -18,7 +19,7 @@ public class SkillXpGain implements Delayed {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static long getDuration() {
|
private static long getDuration() {
|
||||||
return TimeUnit.MINUTES.toMillis(ExperienceConfig.getInstance().getDiminishedReturnsTimeInterval());
|
return TimeUnit.MINUTES.toMillis(mcMMO.getConfigManager().getConfigLeveling().getDimishedReturnTimeInterval());
|
||||||
}
|
}
|
||||||
|
|
||||||
public PrimarySkillType getSkill() {
|
public PrimarySkillType getSkill() {
|
||||||
|
@ -99,9 +99,9 @@ public class SelfListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int threshold = ExperienceConfig.getInstance().getDiminishedReturnsThreshold(primarySkillType);
|
int threshold = mcMMO.getConfigManager().getConfigLeveling().getSkillThreshold(primarySkillType);
|
||||||
|
|
||||||
if (threshold <= 0 || !ExperienceConfig.getInstance().getDiminishedReturnsEnabled()) {
|
if (threshold <= 0 || !mcMMO.getConfigManager().getConfigLeveling().getConfigLevelingDiminishedReturns().isDiminishedReturnsEnabled()) {
|
||||||
// Diminished returns is turned off
|
// Diminished returns is turned off
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -117,7 +117,7 @@ public class SelfListener implements Listener {
|
|||||||
|
|
||||||
final float rawXp = event.getRawXpGained();
|
final float rawXp = event.getRawXpGained();
|
||||||
|
|
||||||
float guaranteedMinimum = ExperienceConfig.getInstance().getDiminishedReturnsCap() * 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().getExperienceMapManager().getGlobalXpMult());
|
||||||
float difference = (mcMMOPlayer.getProfile().getRegisteredXpGain(primarySkillType) - modifiedThreshold) / modifiedThreshold;
|
float difference = (mcMMOPlayer.getProfile().getRegisteredXpGain(primarySkillType) - modifiedThreshold) / modifiedThreshold;
|
||||||
|
@ -51,7 +51,6 @@ import org.bukkit.plugin.java.JavaPlugin;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.lang.reflect.Method;
|
|
||||||
|
|
||||||
public class mcMMO extends JavaPlugin {
|
public class mcMMO extends JavaPlugin {
|
||||||
public static mcMMO p;
|
public static mcMMO p;
|
||||||
@ -564,7 +563,7 @@ public class mcMMO extends JavaPlugin {
|
|||||||
new PowerLevelUpdatingTask().runTaskTimer(this, 2 * Misc.TICK_CONVERSION_FACTOR, 2 * Misc.TICK_CONVERSION_FACTOR);
|
new PowerLevelUpdatingTask().runTaskTimer(this, 2 * Misc.TICK_CONVERSION_FACTOR, 2 * Misc.TICK_CONVERSION_FACTOR);
|
||||||
|
|
||||||
// Clear the registered XP data so players can earn XP again
|
// Clear the registered XP data so players can earn XP again
|
||||||
if (ExperienceConfig.getInstance().getDiminishedReturnsEnabled()) {
|
if (mcMMO.getConfigManager().getConfigExperience().get) {
|
||||||
new ClearRegisteredXPGainTask().runTaskTimer(this, 60, 60);
|
new ClearRegisteredXPGainTask().runTaskTimer(this, 60, 60);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ public class FormulaConversionTask extends BukkitRunnable {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
int[] newExperienceValues = mcMMO.getFormulaManager().calculateNewLevel(primarySkillType, (int) Math.floor(totalOldXP / ExperienceConfig.getInstance().getExpModifier()), formulaType);
|
int[] newExperienceValues = mcMMO.getFormulaManager().calculateNewLevel(primarySkillType, (int) Math.floor(totalOldXP / 1.0), formulaType);
|
||||||
int newLevel = newExperienceValues[0];
|
int newLevel = newExperienceValues[0];
|
||||||
int newXPlevel = newExperienceValues[1];
|
int newXPlevel = newExperienceValues[1];
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.gmail.nossr50.util.experience;
|
package com.gmail.nossr50.util.experience;
|
||||||
|
|
||||||
import com.gmail.nossr50.api.exceptions.InvalidSkillException;
|
import com.gmail.nossr50.api.exceptions.UndefinedSkillBehaviour;
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -193,11 +193,11 @@ public class ExperienceMapManager {
|
|||||||
* @param primarySkillType target skill
|
* @param primarySkillType target skill
|
||||||
* @param material target material
|
* @param material target material
|
||||||
* @return XP value for breaking this block for said skill
|
* @return XP value for breaking this block for said skill
|
||||||
* @throws InvalidSkillException for skills that don't give block break experience
|
* @throws UndefinedSkillBehaviour for skills that don't give block break experience
|
||||||
* @deprecated its faster to use direct calls to get XP, for example getMiningXP(Material material) instead of using this method
|
* @deprecated its faster to use direct calls to get XP, for example getMiningXP(Material material) instead of using this method
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public float getBlockBreakXpValue(PrimarySkillType primarySkillType, Material material) throws InvalidSkillException {
|
public float getBlockBreakXpValue(PrimarySkillType primarySkillType, Material material) throws UndefinedSkillBehaviour {
|
||||||
switch (primarySkillType) {
|
switch (primarySkillType) {
|
||||||
case MINING:
|
case MINING:
|
||||||
return getMiningXp(material);
|
return getMiningXp(material);
|
||||||
@ -208,7 +208,7 @@ public class ExperienceMapManager {
|
|||||||
case WOODCUTTING:
|
case WOODCUTTING:
|
||||||
return getWoodcuttingXp(material);
|
return getWoodcuttingXp(material);
|
||||||
default:
|
default:
|
||||||
throw new InvalidSkillException();
|
throw new UndefinedSkillBehaviour(primarySkillType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user