mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 06:36:45 +01:00
Using doubles in most places again to avoid precision loss
This commit is contained in:
parent
32fa6cee96
commit
fc6c6ed2c4
@ -42,7 +42,7 @@ public final class ExperienceAPI {
|
||||
* @param primarySkillType target skill
|
||||
* @return this players personal XP rate for target PrimarySkillType
|
||||
*/
|
||||
public float getPlayersPersonalXPRate(McMMOPlayer player, PrimarySkillType primarySkillType) {
|
||||
public double getPlayersPersonalXPRate(McMMOPlayer player, PrimarySkillType primarySkillType) {
|
||||
//First check if the player has ANY of the custom perks
|
||||
return player.getPlayerSpecificXPMult(primarySkillType);
|
||||
}
|
||||
@ -65,7 +65,7 @@ public final class ExperienceAPI {
|
||||
|
||||
@Deprecated
|
||||
public static void addRawXP(Player player, String skillType, int XP) {
|
||||
addRawXP(player, skillType, (float) XP);
|
||||
addRawXP(player, skillType, (double) XP);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -79,7 +79,7 @@ public final class ExperienceAPI {
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addRawXP(Player player, String skillType, float XP) {
|
||||
public static void addRawXP(Player player, String skillType, double XP) {
|
||||
addRawXP(player, skillType, XP, "UNKNOWN");
|
||||
}
|
||||
|
||||
@ -95,7 +95,7 @@ public final class ExperienceAPI {
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||
*/
|
||||
public static void addRawXP(Player player, String skillType, float XP, String xpGainReason) {
|
||||
public static void addRawXP(Player player, String skillType, double XP, String xpGainReason) {
|
||||
addRawXP(player, skillType, XP, xpGainReason, false);
|
||||
}
|
||||
|
||||
@ -112,7 +112,7 @@ public final class ExperienceAPI {
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidXPGainReasonException if the given xpGainReason is not valid
|
||||
*/
|
||||
public static void addRawXP(Player player, String skillType, float XP, String xpGainReason, boolean isUnshared) {
|
||||
public static void addRawXP(Player player, String skillType, double XP, String xpGainReason, boolean isUnshared) {
|
||||
if (isUnshared) {
|
||||
getPlayer(player).beginUnsharedXpGain(getSkillType(skillType), XP, getXPGainReason(xpGainReason), XPGainSource.CUSTOM);
|
||||
return;
|
||||
@ -126,12 +126,12 @@ public final class ExperienceAPI {
|
||||
* </br>
|
||||
* This function is designed for API usage.
|
||||
*
|
||||
* @deprecated We're using float for our XP values now
|
||||
* replaced by {@link #addRawXPOffline(String playerName, String skillType, float XP)}
|
||||
* @deprecated We're using double for our XP values now
|
||||
* replaced by {@link #addRawXPOffline(String playerName, String skillType, double XP)}
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addRawXPOffline(String playerName, String skillType, int XP) {
|
||||
addRawXPOffline(playerName, skillType, (float) XP);
|
||||
addRawXPOffline(playerName, skillType, (double) XP);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -145,10 +145,10 @@ public final class ExperienceAPI {
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @deprecated We're using uuids to get an offline player
|
||||
* replaced by {@link #addRawXPOffline(UUID uuid, String skillType, float XP)}
|
||||
* replaced by {@link #addRawXPOffline(UUID uuid, String skillType, double XP)}
|
||||
*/
|
||||
@Deprecated
|
||||
public static void addRawXPOffline(String playerName, String skillType, float XP) {
|
||||
public static void addRawXPOffline(String playerName, String skillType, double XP) {
|
||||
addOfflineXP(playerName, getSkillType(skillType), (int) Math.floor(XP));
|
||||
}
|
||||
|
||||
@ -163,7 +163,7 @@ public final class ExperienceAPI {
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
*/
|
||||
public static void addRawXPOffline(UUID uuid, String skillType, float XP) {
|
||||
public static void addRawXPOffline(UUID uuid, String skillType, double XP) {
|
||||
addOfflineXP(uuid, getSkillType(skillType), (int) Math.floor(XP));
|
||||
}
|
||||
|
||||
@ -402,7 +402,7 @@ public final class ExperienceAPI {
|
||||
* @throws InvalidSkillException if the given skill is not valid
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static float getXPRaw(Player player, String skillType) {
|
||||
public static double getXPRaw(Player player, String skillType) {
|
||||
return getPlayer(player).getSkillXpLevelRaw(getNonChildSkillType(skillType));
|
||||
}
|
||||
|
||||
@ -419,7 +419,7 @@ public final class ExperienceAPI {
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
@Deprecated
|
||||
public static float getOfflineXPRaw(String playerName, String skillType) {
|
||||
public static double getOfflineXPRaw(String playerName, String skillType) {
|
||||
return getOfflineProfile(playerName).getSkillXpLevelRaw(getNonChildSkillType(skillType));
|
||||
}
|
||||
|
||||
@ -435,7 +435,7 @@ public final class ExperienceAPI {
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static float getOfflineXPRaw(UUID uuid, String skillType) {
|
||||
public static double getOfflineXPRaw(UUID uuid, String skillType) {
|
||||
return getOfflineProfile(uuid).getSkillXpLevelRaw(getNonChildSkillType(skillType));
|
||||
}
|
||||
|
||||
@ -538,7 +538,7 @@ public final class ExperienceAPI {
|
||||
* @throws InvalidPlayerException if the given player does not exist in the database
|
||||
* @throws UnsupportedOperationException if the given skill is a child skill
|
||||
*/
|
||||
public static float getOfflineXPRemaining(UUID uuid, String skillType) {
|
||||
public static double getOfflineXPRemaining(UUID uuid, String skillType) {
|
||||
PrimarySkillType skill = getNonChildSkillType(skillType);
|
||||
PlayerProfile profile = getOfflineProfile(uuid);
|
||||
|
||||
|
@ -22,7 +22,7 @@ public class AddlevelsCommand extends ExperienceCommand {
|
||||
|
||||
@Override
|
||||
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) {
|
||||
float xpRemoved = profile.getSkillXpLevelRaw(skill);
|
||||
double xpRemoved = profile.getSkillXpLevelRaw(skill);
|
||||
profile.addLevels(skill, value);
|
||||
|
||||
if (player == null) {
|
||||
|
@ -23,7 +23,7 @@ public class MmoeditCommand extends ExperienceCommand {
|
||||
@Override
|
||||
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill, int value) {
|
||||
int skillLevel = profile.getSkillLevel(skill);
|
||||
float xpRemoved = profile.getSkillXpLevelRaw(skill);
|
||||
double xpRemoved = profile.getSkillXpLevelRaw(skill);
|
||||
|
||||
profile.modifySkill(skill, value);
|
||||
|
||||
|
@ -122,7 +122,7 @@ public class SkillresetCommand implements TabExecutor {
|
||||
|
||||
protected void handleCommand(Player player, PlayerProfile profile, PrimarySkillType skill) {
|
||||
int levelsRemoved = profile.getSkillLevel(skill);
|
||||
float xpRemoved = profile.getSkillXpLevelRaw(skill);
|
||||
double xpRemoved = profile.getSkillXpLevelRaw(skill);
|
||||
|
||||
profile.modifySkill(skill, 0);
|
||||
|
||||
|
@ -26,7 +26,7 @@ public class AcrobaticsCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// ACROBATICS_DODGE
|
||||
if (canDodge) {
|
||||
String[] dodgeStrings = getAbilityDisplayValues(player, SubSkillType.ACROBATICS_DODGE);
|
||||
@ -42,7 +42,7 @@ public class AcrobaticsCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canDodge) {
|
||||
|
@ -42,7 +42,7 @@
|
||||
//// }
|
||||
//
|
||||
// @Override
|
||||
// protected void dataCalculations(Player player, float skillValue) {
|
||||
// protected void dataCalculations(Player player, double skillValue) {
|
||||
// // ALCHEMY_CATALYSIS
|
||||
//// if (canCatalysis) {
|
||||
//// String[] catalysisStrings = calculateAbilityDisplayValues(player);
|
||||
@ -66,7 +66,7 @@
|
||||
// }
|
||||
//
|
||||
// @Override
|
||||
// protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
// protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
// List<String> messages = new ArrayList<>();
|
||||
//
|
||||
//// if (canCatalysis) {
|
||||
|
@ -28,7 +28,7 @@ public class ArcheryCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// ARCHERY_ARROW_RETRIEVAL
|
||||
if (canRetrieve) {
|
||||
String[] retrieveStrings = getAbilityDisplayValues(player, SubSkillType.ARCHERY_ARROW_RETRIEVAL);
|
||||
@ -57,7 +57,7 @@ public class ArcheryCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canRetrieve) {
|
||||
|
@ -35,7 +35,7 @@ public class AxesCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// ARMOR IMPACT
|
||||
if (canImpact) {
|
||||
impactDamage = UserManager.getPlayer(player).getAxesManager().getImpactDurabilityDamage();
|
||||
@ -71,7 +71,7 @@ public class AxesCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canImpact) {
|
||||
|
@ -24,7 +24,7 @@ public class ExcavationCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// GIGA DRILL BREAKER
|
||||
if (canGigaDrill) {
|
||||
String[] gigaDrillStrings = calculateLengthDisplayValues(player, skillValue);
|
||||
@ -40,7 +40,7 @@ public class ExcavationCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canGigaDrill) {
|
||||
|
@ -51,7 +51,7 @@ public class FishingCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
FishingManager fishingManager = UserManager.getPlayer(player).getFishingManager();
|
||||
|
||||
// TREASURE HUNTER
|
||||
@ -133,7 +133,7 @@ public class FishingCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canFishermansDiet) {
|
||||
|
@ -40,7 +40,7 @@ public class HerbalismCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
|
||||
// DOUBLE DROPS
|
||||
if (canDoubleDrop) {
|
||||
@ -97,7 +97,7 @@ public class HerbalismCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canDoubleDrop) {
|
||||
|
@ -38,7 +38,7 @@ public class MiningCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// BLAST MINING
|
||||
if (canBlast || canDemoExpert || canBiggerBombs) {
|
||||
MiningManager miningManager = UserManager.getPlayer(player).getMiningManager();
|
||||
@ -76,7 +76,7 @@ public class MiningCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canBiggerBombs) {
|
||||
|
@ -46,7 +46,7 @@ public class RepairCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// We're using pickaxes here, not the best but it works
|
||||
Repairable diamondRepairable = mcMMO.getRepairableManager().getRepairable(Material.DIAMOND_PICKAXE);
|
||||
Repairable goldRepairable = mcMMO.getRepairableManager().getRepairable(Material.GOLDEN_PICKAXE);
|
||||
@ -88,7 +88,7 @@ public class RepairCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canArcaneForge) {
|
||||
|
@ -23,7 +23,7 @@ public class SalvageCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// TODO Auto-generated method stub
|
||||
|
||||
}
|
||||
@ -35,7 +35,7 @@ public class SalvageCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
SalvageManager salvageManager = UserManager.getPlayer(player).getSalvageManager();
|
||||
|
||||
|
@ -76,7 +76,7 @@ public abstract class SkillCommand implements TabExecutor {
|
||||
|
||||
boolean isLucky = Permissions.lucky(player, skill);
|
||||
boolean hasEndurance = (PerksUtils.handleActivationPerks(player, 0, 0) != 0);
|
||||
float skillValue = mcMMOPlayer.getSkillLevel(skill);
|
||||
double skillValue = mcMMOPlayer.getSkillLevel(skill);
|
||||
|
||||
//Send the players a few blank lines to make finding the top of the skill command easier
|
||||
if (AdvancedConfig.getInstance().doesSkillCommandSendBlankLines())
|
||||
@ -129,7 +129,7 @@ public abstract class SkillCommand implements TabExecutor {
|
||||
}
|
||||
}
|
||||
|
||||
private void getStatMessages(Player player, boolean isLucky, boolean hasEndurance, float skillValue) {
|
||||
private void getStatMessages(Player player, boolean isLucky, boolean hasEndurance, double skillValue) {
|
||||
List<String> statsMessages = statsDisplay(player, skillValue, hasEndurance, isLucky);
|
||||
|
||||
if (!statsMessages.isEmpty()) {
|
||||
@ -224,7 +224,7 @@ public abstract class SkillCommand implements TabExecutor {
|
||||
}
|
||||
}
|
||||
|
||||
protected int calculateRank(float skillValue, int maxLevel, int rankChangeLevel) {
|
||||
protected int calculateRank(double skillValue, int maxLevel, int rankChangeLevel) {
|
||||
return Math.min((int) skillValue, maxLevel) / rankChangeLevel;
|
||||
}
|
||||
|
||||
@ -232,7 +232,7 @@ public abstract class SkillCommand implements TabExecutor {
|
||||
return RandomChanceUtil.calculateAbilityDisplayValues(SkillActivationType.RANDOM_LINEAR_100_SCALE_WITH_CAP, player, subSkill);
|
||||
}
|
||||
|
||||
protected String[] calculateLengthDisplayValues(Player player, float skillValue) {
|
||||
protected String[] calculateLengthDisplayValues(Player player, double skillValue) {
|
||||
int maxLength = skill.getAbility().getMaxLength();
|
||||
int abilityLengthVar = AdvancedConfig.getInstance().getAbilityLength();
|
||||
int abilityLengthCap = AdvancedConfig.getInstance().getAbilityLengthCap();
|
||||
@ -270,13 +270,13 @@ public abstract class SkillCommand implements TabExecutor {
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract void dataCalculations(Player player, float skillValue);
|
||||
protected abstract void dataCalculations(Player player, double skillValue);
|
||||
|
||||
protected abstract void permissionsCheck(Player player);
|
||||
|
||||
//protected abstract List<String> effectsDisplay();
|
||||
|
||||
protected abstract List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky);
|
||||
protected abstract List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky);
|
||||
|
||||
protected abstract List<TextComponent> getTextComponents(Player player);
|
||||
|
||||
|
@ -30,7 +30,7 @@ public class SmeltingCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// FUEL EFFICIENCY
|
||||
if (canFuelEfficiency) {
|
||||
burnTimeModifier = String.valueOf(UserManager.getPlayer(player).getSmeltingManager().getFuelEfficiencyMultiplier());
|
||||
@ -60,7 +60,7 @@ public class SmeltingCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
/*if (canFluxMine) {
|
||||
|
@ -33,7 +33,7 @@ public class SwordsCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// SWORDS_COUNTER_ATTACK
|
||||
if (canCounter) {
|
||||
String[] counterStrings = getAbilityDisplayValues(player, SubSkillType.SWORDS_COUNTER_ATTACK);
|
||||
@ -66,7 +66,7 @@ public class SwordsCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
int ruptureTicks = UserManager.getPlayer(player).getSwordsManager().getRuptureBleedTicks();
|
||||
|
@ -32,7 +32,7 @@ public class TamingCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
if (canGore) {
|
||||
String[] goreStrings = getAbilityDisplayValues(player, SubSkillType.TAMING_GORE);
|
||||
goreChance = goreStrings[0];
|
||||
@ -54,7 +54,7 @@ public class TamingCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canEnvironmentallyAware) {
|
||||
|
@ -36,7 +36,7 @@ public class UnarmedCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// UNARMED_ARROW_DEFLECT
|
||||
if (canDeflect) {
|
||||
String[] deflectStrings = getAbilityDisplayValues(player, SubSkillType.UNARMED_ARROW_DEFLECT);
|
||||
@ -82,7 +82,7 @@ public class UnarmedCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canDeflect) {
|
||||
|
@ -30,7 +30,7 @@ public class WoodcuttingCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void dataCalculations(Player player, float skillValue) {
|
||||
protected void dataCalculations(Player player, double skillValue) {
|
||||
// DOUBLE DROPS
|
||||
if (canDoubleDrop) {
|
||||
setDoubleDropClassicChanceStrings(player);
|
||||
@ -61,7 +61,7 @@ public class WoodcuttingCommand extends SkillCommand {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<String> statsDisplay(Player player, float skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
protected List<String> statsDisplay(Player player, double skillValue, boolean hasEndurance, boolean isLucky) {
|
||||
List<String> messages = new ArrayList<>();
|
||||
|
||||
if (canDoubleDrop) {
|
||||
|
@ -56,7 +56,7 @@ public class ConfigExploitPrevention {
|
||||
return getConfigSectionExploitFishing().getFishingRodSpamMilliseconds();
|
||||
}
|
||||
|
||||
public float getOverFishingAreaSize() {
|
||||
public double getOverFishingAreaSize() {
|
||||
return getConfigSectionExploitFishing().getOverFishingAreaSize();
|
||||
}
|
||||
|
||||
|
@ -8,7 +8,7 @@ public class ConfigSectionExploitFishing {
|
||||
|
||||
public static final int OVER_FISHING_LIMIT_DEFAULT = 10;
|
||||
public static final boolean ADMINS_OVER_FISHING_DEFAULT = true;
|
||||
public static final float OVER_FISHING_SIZE = 1.0F;
|
||||
public static final double OVER_FISHING_SIZE = 1.0;
|
||||
public static final int FISHING_ROD_SPAM_THRESHOLD_MILLISECONDS_DEFAULT = 200;
|
||||
private static final boolean PREVENT_FISHING_EXPLOITS_DEFAULT = true;
|
||||
@Setting(value = "Prevent-Fishing-AFK-Farming",
|
||||
@ -32,7 +32,7 @@ public class ConfigSectionExploitFishing {
|
||||
"\nWhen you catch a new fish it makes a new bounding box at that location and checks to see if it overlaps with the bounding box of the last place you caught a fish," +
|
||||
"\n if they intersect then that increases your fish counter, if you are at your fishing limit then you get nothing." +
|
||||
"\nDefault value: " + OVER_FISHING_SIZE)
|
||||
private float overFishingAreaSize = OVER_FISHING_SIZE;
|
||||
private double overFishingAreaSize = OVER_FISHING_SIZE;
|
||||
|
||||
@Setting(value = "Alert-Admins-To-Overfishing-Abuse", comment = "If someone is triggering over-fishing exploit detection too often, alert admins." +
|
||||
"\nThis will send a message to ops in game and to the console, and to anyone with the admin chat permission node." +
|
||||
@ -49,7 +49,7 @@ public class ConfigSectionExploitFishing {
|
||||
return fishingRodSpamMilliseconds;
|
||||
}
|
||||
|
||||
public float getOverFishingAreaSize() {
|
||||
public double getOverFishingAreaSize() {
|
||||
return overFishingAreaSize;
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ public class ConfigSectionExploitSkills {
|
||||
return configSectionExploitFishing.getFishingRodSpamMilliseconds();
|
||||
}
|
||||
|
||||
public float getOverFishingAreaSize() {
|
||||
public double getOverFishingAreaSize() {
|
||||
return configSectionExploitFishing.getOverFishingAreaSize();
|
||||
}
|
||||
|
||||
|
@ -12,12 +12,12 @@ import java.util.HashMap;
|
||||
@ConfigSerializable
|
||||
public class ConfigExperience {
|
||||
|
||||
private static final float GLOBAL_XP_MULT_DEFAULT = 1.0F;
|
||||
private static final double GLOBAL_XP_MULT_DEFAULT = 1.0F;
|
||||
|
||||
@Setting(value = "Global-XP-Multiplier", comment = "This multiplier is applied at the very end of every XP gain, you can use it as a shortcut to increase or decrease xp gains across the entire plugin" +
|
||||
"\nThis value is temporarily overridden by xprate events." +
|
||||
"\nDefault value: " + GLOBAL_XP_MULT_DEFAULT)
|
||||
private float globalXPMultiplier = GLOBAL_XP_MULT_DEFAULT;
|
||||
private double globalXPMultiplier = GLOBAL_XP_MULT_DEFAULT;
|
||||
|
||||
@Setting(value = "Global-Skill-XP-Multipliers", comment = "This multiplier is applied at the very end of an XP calculation specific to its corresponding skill, this value is applied before the global multiplier is applied.")
|
||||
private ConfigExperienceSkillMultiplier configExperienceSkillMultiplier = new ConfigExperienceSkillMultiplier();
|
||||
@ -104,11 +104,11 @@ public class ConfigExperience {
|
||||
return getConfigExperienceSkills().getSmeltingExperienceMap();
|
||||
}
|
||||
|
||||
public float getItemMaterialXPMultiplier(ItemMaterialCategory itemMaterialCategory) {
|
||||
public double getItemMaterialXPMultiplier(ItemMaterialCategory itemMaterialCategory) {
|
||||
return getConfigExperienceSkills().getItemMaterialXPMultiplier(itemMaterialCategory);
|
||||
}
|
||||
|
||||
public Float getRepairXPBase() {
|
||||
public Double getRepairXPBase() {
|
||||
return getConfigExperienceSkills().getRepairXPBase();
|
||||
}
|
||||
|
||||
@ -116,7 +116,7 @@ public class ConfigExperience {
|
||||
return getConfigExperienceSkills().getAcrobaticsXPMap();
|
||||
}
|
||||
|
||||
public Float getFeatherFallMultiplier() {
|
||||
public Double getFeatherFallMultiplier() {
|
||||
return getConfigExperienceSkills().getFeatherFallMultiplier();
|
||||
}
|
||||
|
||||
@ -160,15 +160,15 @@ public class ConfigExperience {
|
||||
return getConfigExperienceSkills().isPvpXPEnabled();
|
||||
}
|
||||
|
||||
public HashMap<String, Float> getCombatExperienceMap() {
|
||||
public HashMap<String, Double> getCombatExperienceMap() {
|
||||
return getConfigExperienceSkills().getCombatExperienceMap();
|
||||
}
|
||||
|
||||
public HashMap<SpecialXPKey, Float> getSpecialCombatExperienceMap() {
|
||||
public HashMap<SpecialXPKey, Double> getSpecialCombatExperienceMap() {
|
||||
return configExperienceSkills.getSpecialCombatExperienceMap();
|
||||
}
|
||||
|
||||
public Float getDistanceMultiplier() {
|
||||
public double getDistanceMultiplier() {
|
||||
return getConfigExperienceSkills().getDistanceMultiplier();
|
||||
}
|
||||
|
||||
@ -196,7 +196,7 @@ public class ConfigExperience {
|
||||
return configExperienceSkills;
|
||||
}
|
||||
|
||||
public Float getGlobalXPMultiplier() {
|
||||
public double getGlobalXPMultiplier() {
|
||||
return globalXPMultiplier;
|
||||
}
|
||||
}
|
@ -9,7 +9,7 @@ import java.util.HashMap;
|
||||
public class ConfigExperienceAcrobatics {
|
||||
|
||||
private final static HashMap<String, Integer> ACROBATICS_DEFAULT_XP_MAP;
|
||||
private static final float FEATHER_FALL_MULTIPLIER_DEFAULT = 2.0F;
|
||||
private static final double FEATHER_FALL_MULTIPLIER_DEFAULT = 2.0F;
|
||||
|
||||
static {
|
||||
ACROBATICS_DEFAULT_XP_MAP = new HashMap<>();
|
||||
@ -24,13 +24,13 @@ public class ConfigExperienceAcrobatics {
|
||||
@Setting(value = "Feather-Fall-XP-Multiplier", comment = "Feather Fall grants bonus XP to fall related XP gains." +
|
||||
"\nThis value is multiplied against your XP to give the bonus." +
|
||||
"\nDefault value: " + FEATHER_FALL_MULTIPLIER_DEFAULT)
|
||||
private Float featherFallMultiplier = FEATHER_FALL_MULTIPLIER_DEFAULT;
|
||||
private Double featherFallMultiplier = FEATHER_FALL_MULTIPLIER_DEFAULT;
|
||||
|
||||
public HashMap<String, Integer> getAcrobaticsXPMap() {
|
||||
return acrobaticsXPMap;
|
||||
}
|
||||
|
||||
public Float getFeatherFallMultiplier() {
|
||||
public Double getFeatherFallMultiplier() {
|
||||
return featherFallMultiplier;
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,7 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||
@ConfigSerializable
|
||||
public class ConfigExperienceArchery {
|
||||
|
||||
public static final float DISTANCE_MULTIPLIER_DEFAULT = 0.025F;
|
||||
public static final double DISTANCE_MULTIPLIER_DEFAULT = 0.025F;
|
||||
|
||||
@Setting(value = "Distance-Multiplier", comment = "The distance multiplier is multiplied against the distance an " +
|
||||
"arrow travels before hitting its target to determine final XP values awarded." +
|
||||
@ -14,9 +14,9 @@ public class ConfigExperienceArchery {
|
||||
"\nDistance is in blocks traveled." +
|
||||
"\nThis value is added on to normal XP gains from damage for Archery." +
|
||||
"\nDefault value: " + DISTANCE_MULTIPLIER_DEFAULT)
|
||||
private float distanceMultiplier = DISTANCE_MULTIPLIER_DEFAULT;
|
||||
private double distanceMultiplier = DISTANCE_MULTIPLIER_DEFAULT;
|
||||
|
||||
public float getDistanceMultiplier() {
|
||||
public double getDistanceMultiplier() {
|
||||
return distanceMultiplier;
|
||||
}
|
||||
}
|
@ -9,82 +9,82 @@ import java.util.HashMap;
|
||||
@ConfigSerializable
|
||||
public class ConfigExperienceCombat {
|
||||
|
||||
private static final HashMap<String, Float> COMBAT_EXPERIENCE_DEFAULT;
|
||||
private static final HashMap<SpecialXPKey, Float> SPECIAL_COMBAT_EXPERIENCE_DEFAULT;
|
||||
private static final HashMap<String, Double> COMBAT_EXPERIENCE_DEFAULT;
|
||||
private static final HashMap<SpecialXPKey, Double> SPECIAL_COMBAT_EXPERIENCE_DEFAULT;
|
||||
private static final boolean PVP_XP_ENABLED_DEFAULT = false;
|
||||
|
||||
static {
|
||||
COMBAT_EXPERIENCE_DEFAULT = new HashMap<>();
|
||||
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("creeper", 4.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("cat", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("fox", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("panda", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("pillager", 2.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("ravager", 4.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("trader_llama", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("skeleton", 3.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("spider", 2.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("giant", 4.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("zombie", 2.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("slime", 2.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("ghast", 3.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("pig_zombie", 3.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("enderman", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("cave_spider", 3.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("silverfish", 3.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("blaze", 3.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("magma_cube", 2.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("ender_dragon", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("wither", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("witch", 0.1F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("iron_golem", 2.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("wither_skeleton", 4.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("endermite", 2.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("guardian", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("elder_guardian", 4.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("shulker", 2.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("donkey", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("mule", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("horse", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("zombie_villager", 2.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("skeleton_horse", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("zombie_horse", 1.2F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("husk", 3.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("evoker", 3.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("polar_bear", 2.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("llama", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("vindicator", 3.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("stray", 2.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("rabbit", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("chicken", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("bat", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("mushroom_cow", 1.2F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("cow", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("turtle", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("sheep", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("pig", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("squid", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("ocelot", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("villager", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("snowman", 0.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("parrot", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("illusioner", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("drowned", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("dolphin", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("phantom", 4.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("wandering_trader", 1.0F);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("creeper", 4.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("cat", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("fox", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("panda", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("pillager", 2.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("ravager", 4.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("trader_llama", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("skeleton", 3.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("spider", 2.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("giant", 4.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("zombie", 2.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("slime", 2.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("ghast", 3.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("pig_zombie", 3.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("enderman", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("cave_spider", 3.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("silverfish", 3.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("blaze", 3.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("magma_cube", 2.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("ender_dragon", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("wither", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("witch", 0.1);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("iron_golem", 2.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("wither_skeleton", 4.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("endermite", 2.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("guardian", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("elder_guardian", 4.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("shulker", 2.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("donkey", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("mule", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("horse", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("zombie_villager", 2.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("skeleton_horse", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("zombie_horse", 1.2);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("husk", 3.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("evoker", 3.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("polar_bear", 2.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("llama", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("vindicator", 3.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("stray", 2.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("rabbit", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("chicken", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("bat", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("mushroom_cow", 1.2);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("cow", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("turtle", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("sheep", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("pig", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("squid", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("ocelot", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("villager", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("snowman", 0.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("parrot", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("illusioner", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("drowned", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("dolphin", 1.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("phantom", 4.0);
|
||||
COMBAT_EXPERIENCE_DEFAULT.put("wandering_trader", 1.0);
|
||||
|
||||
//SPECIAL
|
||||
SPECIAL_COMBAT_EXPERIENCE_DEFAULT = new HashMap<>();
|
||||
SPECIAL_COMBAT_EXPERIENCE_DEFAULT.put(SpecialXPKey.ANIMALS, 1.0F); //TODO: this seems like a dumb config option
|
||||
SPECIAL_COMBAT_EXPERIENCE_DEFAULT.put(SpecialXPKey.SPAWNED, 0.0F);
|
||||
SPECIAL_COMBAT_EXPERIENCE_DEFAULT.put(SpecialXPKey.PVP, 1.0F);
|
||||
SPECIAL_COMBAT_EXPERIENCE_DEFAULT.put(SpecialXPKey.PETS, 1.0F);
|
||||
SPECIAL_COMBAT_EXPERIENCE_DEFAULT.put(SpecialXPKey.ANIMALS, 1.0); //TODO: this seems like a dumb config option
|
||||
SPECIAL_COMBAT_EXPERIENCE_DEFAULT.put(SpecialXPKey.SPAWNED, 0.0);
|
||||
SPECIAL_COMBAT_EXPERIENCE_DEFAULT.put(SpecialXPKey.PVP, 1.0);
|
||||
SPECIAL_COMBAT_EXPERIENCE_DEFAULT.put(SpecialXPKey.PETS, 1.0);
|
||||
}
|
||||
|
||||
@Setting(value = "Combat-XP-Multipliers")
|
||||
private HashMap<String, Float> combatExperienceMap = COMBAT_EXPERIENCE_DEFAULT;
|
||||
private HashMap<String, Double> combatExperienceMap = COMBAT_EXPERIENCE_DEFAULT;
|
||||
|
||||
@Setting(value = "Special-Combat-XP-Multipliers", comment = "Special XP settings which apply to a mobs matching certain criteria" +
|
||||
"\nAnimals - Non-hostile mobs, anything not considered a Monster" +
|
||||
@ -93,7 +93,7 @@ public class ConfigExperienceCombat {
|
||||
"\nPets - Either tamed or from breeding" +
|
||||
"\nThese all default to 1.0 except for spawned, which defaults to 0.0" +
|
||||
"\nIf you want spawned mobs to give XP simply turn the value for spawned above 0.0")
|
||||
private HashMap<SpecialXPKey, Float> specialCombatExperienceMap = SPECIAL_COMBAT_EXPERIENCE_DEFAULT;
|
||||
private HashMap<SpecialXPKey, Double> specialCombatExperienceMap = SPECIAL_COMBAT_EXPERIENCE_DEFAULT;
|
||||
|
||||
@Setting(value = "PVP-XP", comment = "If true, players will gain XP from PVP interactions." +
|
||||
"\nBe careful turning this on as this can potentially allow for unwanted behaviour from players." +
|
||||
@ -104,11 +104,11 @@ public class ConfigExperienceCombat {
|
||||
return pvpXPEnabled;
|
||||
}
|
||||
|
||||
public HashMap<String, Float> getCombatExperienceMap() {
|
||||
public HashMap<String, Double> getCombatExperienceMap() {
|
||||
return combatExperienceMap;
|
||||
}
|
||||
|
||||
public HashMap<SpecialXPKey, Float> getSpecialCombatExperienceMap() {
|
||||
public HashMap<SpecialXPKey, Double> getSpecialCombatExperienceMap() {
|
||||
return specialCombatExperienceMap;
|
||||
}
|
||||
}
|
@ -14,10 +14,18 @@ public class ConfigExperienceCustomBoosts {
|
||||
|
||||
static {
|
||||
CUSTOM_BOOST_SET_DEFAULT = new ArrayList<>();
|
||||
CustomXPPerk customXPPerk = new CustomXPPerk("examplecustomxpperk");
|
||||
customXPPerk.setCustomXPValue(PrimarySkillType.MINING, 13.37f);
|
||||
customXPPerk.setCustomXPValue(PrimarySkillType.WOODCUTTING, 4.0f);
|
||||
CUSTOM_BOOST_SET_DEFAULT.add(customXPPerk);
|
||||
|
||||
CustomXPPerk exampleA = new CustomXPPerk("example-beneficial-xpperk");
|
||||
exampleA.setCustomXPValue(PrimarySkillType.MINING, 13.37);
|
||||
exampleA.setCustomXPValue(PrimarySkillType.EXCAVATION, 4.20);
|
||||
|
||||
CustomXPPerk exampleB = new CustomXPPerk("example-detrimental-xpperk");
|
||||
exampleB.setCustomXPValue(PrimarySkillType.WOODCUTTING, 0.01);
|
||||
exampleB.setCustomXPValue(PrimarySkillType.UNARMED, 0.02);
|
||||
exampleB.setCustomXPValue(PrimarySkillType.SWORDS, 0.03);
|
||||
|
||||
CUSTOM_BOOST_SET_DEFAULT.add(exampleA);
|
||||
CUSTOM_BOOST_SET_DEFAULT.add(exampleB);
|
||||
}
|
||||
|
||||
@Setting(value = "Custom-Global-XP-Permissions", comment = "You can give custom global xp perks to players by adding 'mcmmo.customperks.xp.<PERK NAME HERE>' to your players" +
|
||||
|
@ -9,26 +9,26 @@ import java.util.HashMap;
|
||||
@ConfigSerializable
|
||||
public class ConfigExperienceRepair {
|
||||
|
||||
private static final float REPAIR_XP_BASE_DEFAULT = 1000.0F;
|
||||
private static final double REPAIR_XP_BASE_DEFAULT = 1000.0F;
|
||||
|
||||
private static final HashMap<ItemMaterialCategory, Float> ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT;
|
||||
private static final HashMap<ItemMaterialCategory, Double> ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT;
|
||||
|
||||
static {
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT = new HashMap<>();
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.WOOD, 0.6F);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.STONE, 1.3F);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.IRON, 2.5F);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.GOLD, 0.3F);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.DIAMOND, 5.0F);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.LEATHER, 1.6F);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.STRING, 1.8F);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.OTHER, 1.5F);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.WOOD, 0.6);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.STONE, 1.3);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.IRON, 2.5);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.GOLD, 0.3);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.DIAMOND, 5.0);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.LEATHER, 1.6);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.STRING, 1.8);
|
||||
ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT.put(ItemMaterialCategory.OTHER, 1.5);
|
||||
}
|
||||
|
||||
@Setting(value = "Item-Material-Category-XP-Multiplier", comment = "The material of your item is determined by mcMMO and used to influence XP, " +
|
||||
"if your Item doesn't fit into a known category it will use OTHER." +
|
||||
"\nFor the most part, items belong to categories of materials that they are made out of.")
|
||||
private HashMap<ItemMaterialCategory, Float> itemMaterialXPMultiplier = ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT;
|
||||
private HashMap<ItemMaterialCategory, Double> itemMaterialXPMultiplier = ITEM_MATERIAL_XP_MULTIPLIER_DEFAULT;
|
||||
|
||||
@Setting(value = "Repair-XP-Base", comment = "The base amount of XP for repairing an item." +
|
||||
"\nThe repair XP formula is a simple multiplication of these 4 values in this order" +
|
||||
@ -37,13 +37,13 @@ public class ConfigExperienceRepair {
|
||||
"\nThe Base Repair XP defined here (default 1000.0)" +
|
||||
"\nAnd finally, the XP multiplier of the item material category defined in this config." +
|
||||
"\nDefault value: " + REPAIR_XP_BASE_DEFAULT)
|
||||
private Float repairXPBase = REPAIR_XP_BASE_DEFAULT;
|
||||
private Double repairXPBase = REPAIR_XP_BASE_DEFAULT;
|
||||
|
||||
public float getItemMaterialXPMultiplier(ItemMaterialCategory itemMaterialCategory) {
|
||||
public double getItemMaterialXPMultiplier(ItemMaterialCategory itemMaterialCategory) {
|
||||
return itemMaterialXPMultiplier.get(itemMaterialCategory);
|
||||
}
|
||||
|
||||
public Float getRepairXPBase() {
|
||||
public Double getRepairXPBase() {
|
||||
return repairXPBase;
|
||||
}
|
||||
}
|
@ -11,27 +11,27 @@ import static com.gmail.nossr50.datatypes.skills.PrimarySkillType.*;
|
||||
@ConfigSerializable
|
||||
public class ConfigExperienceSkillMultiplier {
|
||||
|
||||
private static final HashMap<PrimarySkillType, Float> SKILL_GLOBAL_MULT_DEFAULT;
|
||||
private static final HashMap<PrimarySkillType, Double> SKILL_GLOBAL_MULT_DEFAULT;
|
||||
|
||||
static {
|
||||
SKILL_GLOBAL_MULT_DEFAULT = new HashMap<>();
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(ACROBATICS, 1.0f);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(ALCHEMY, 1.0f);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(ARCHERY, 1.0f);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(AXES, 1.0f);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(EXCAVATION, 1.0f);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(FISHING, 1.0f);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(HERBALISM, 1.0f);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(MINING, 1.0f);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(REPAIR, 1.0f);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(SWORDS, 1.0f);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(TAMING, 1.0f);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(UNARMED, 1.0f);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(WOODCUTTING, 1.0f);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(ACROBATICS, 1.0);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(ALCHEMY, 1.0);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(ARCHERY, 1.0);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(AXES, 1.0);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(EXCAVATION, 1.0);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(FISHING, 1.0);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(HERBALISM, 1.0);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(MINING, 1.0);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(REPAIR, 1.0);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(SWORDS, 1.0);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(TAMING, 1.0);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(UNARMED, 1.0);
|
||||
SKILL_GLOBAL_MULT_DEFAULT.put(WOODCUTTING, 1.0);
|
||||
}
|
||||
|
||||
@Setting(value = "Skill-XP-Multipliers")
|
||||
private HashMap<PrimarySkillType, Float> perSkillGlobalMultiplier = SKILL_GLOBAL_MULT_DEFAULT;
|
||||
private HashMap<PrimarySkillType, Double> perSkillGlobalMultiplier = SKILL_GLOBAL_MULT_DEFAULT;
|
||||
|
||||
public double getSkillGlobalMultiplier(PrimarySkillType primarySkillType) {
|
||||
return perSkillGlobalMultiplier.get(primarySkillType);
|
||||
|
@ -109,11 +109,11 @@ public class ConfigExperienceSkills {
|
||||
return experienceSmelting.getSmeltingExperienceMap();
|
||||
}
|
||||
|
||||
public float getItemMaterialXPMultiplier(ItemMaterialCategory itemMaterialCategory) {
|
||||
public double getItemMaterialXPMultiplier(ItemMaterialCategory itemMaterialCategory) {
|
||||
return experienceRepair.getItemMaterialXPMultiplier(itemMaterialCategory);
|
||||
}
|
||||
|
||||
public float getRepairXPBase() {
|
||||
public double getRepairXPBase() {
|
||||
return experienceRepair.getRepairXPBase();
|
||||
}
|
||||
|
||||
@ -121,7 +121,7 @@ public class ConfigExperienceSkills {
|
||||
return experienceAcrobatics.getAcrobaticsXPMap();
|
||||
}
|
||||
|
||||
public float getFeatherFallMultiplier() {
|
||||
public double getFeatherFallMultiplier() {
|
||||
return experienceAcrobatics.getFeatherFallMultiplier();
|
||||
}
|
||||
|
||||
@ -165,15 +165,15 @@ public class ConfigExperienceSkills {
|
||||
return experienceCombat.isPvpXPEnabled();
|
||||
}
|
||||
|
||||
public HashMap<String, Float> getCombatExperienceMap() {
|
||||
public HashMap<String, Double> getCombatExperienceMap() {
|
||||
return experienceCombat.getCombatExperienceMap();
|
||||
}
|
||||
|
||||
public HashMap<SpecialXPKey, Float> getSpecialCombatExperienceMap() {
|
||||
public HashMap<SpecialXPKey, Double> getSpecialCombatExperienceMap() {
|
||||
return experienceCombat.getSpecialCombatExperienceMap();
|
||||
}
|
||||
|
||||
public float getDistanceMultiplier() {
|
||||
public double getDistanceMultiplier() {
|
||||
return experienceArchery.getDistanceMultiplier();
|
||||
}
|
||||
|
||||
|
@ -11,24 +11,24 @@ import java.util.HashMap;
|
||||
public class ConfigExperienceFormula {
|
||||
|
||||
private static final boolean CUMULATIVE_CURVE_DEFAULT = false;
|
||||
private static final HashMap<PrimarySkillType, Float> SKILL_FORMULA_MODIFIER_DEFAULT;
|
||||
private static final HashMap<PrimarySkillType, Double> SKILL_FORMULA_MODIFIER_DEFAULT;
|
||||
|
||||
static {
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT = new HashMap<>();
|
||||
//TODO: This code is causing compiler issues
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.ACROBATICS, 1.0f);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.ALCHEMY, 1.0f);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.AXES, 1.0f);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.ARCHERY, 1.0f);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.EXCAVATION, 1.0f);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.FISHING, 1.0f);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.HERBALISM, 1.0f);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.MINING, 1.0f);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.REPAIR, 1.0f);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.SWORDS, 1.0f);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.TAMING, 1.0f);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.UNARMED, 1.0f);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.WOODCUTTING, 1.0f);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.ACROBATICS, 1.0);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.ALCHEMY, 1.0);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.AXES, 1.0);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.ARCHERY, 1.0);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.EXCAVATION, 1.0);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.FISHING, 1.0);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.HERBALISM, 1.0);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.MINING, 1.0);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.REPAIR, 1.0);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.SWORDS, 1.0);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.TAMING, 1.0);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.UNARMED, 1.0);
|
||||
SKILL_FORMULA_MODIFIER_DEFAULT.put(PrimarySkillType.WOODCUTTING, 1.0);
|
||||
}
|
||||
|
||||
@Setting(value = "Player-XP-Formula-Type", comment = "Determines which formula is used to determine XP needed to level" +
|
||||
@ -50,13 +50,13 @@ public class ConfigExperienceFormula {
|
||||
|
||||
@Setting(value = "Skill-Formula-Multipliers", comment = "The end result of how much XP is needed to level is determined by multiplying against this value" +
|
||||
"\nHigher values will make skills take longer to level, lower values will decrease time to level instead.")
|
||||
private HashMap<PrimarySkillType, Float> skillXpModifier = SKILL_FORMULA_MODIFIER_DEFAULT;
|
||||
private HashMap<PrimarySkillType, Double> skillXpModifier = SKILL_FORMULA_MODIFIER_DEFAULT;
|
||||
|
||||
public FormulaType getFormulaType() {
|
||||
return formulaType;
|
||||
}
|
||||
|
||||
public float getSkillXpFormulaModifier(PrimarySkillType primarySkillType) {
|
||||
public double getSkillXpFormulaModifier(PrimarySkillType primarySkillType) {
|
||||
return skillXpModifier.get(primarySkillType);
|
||||
}
|
||||
|
||||
@ -72,7 +72,7 @@ public class ConfigExperienceFormula {
|
||||
return configExperienceFormulaExponential;
|
||||
}
|
||||
|
||||
public float getMultiplier(FormulaType formulaType) {
|
||||
public double getMultiplier(FormulaType formulaType) {
|
||||
switch (formulaType) {
|
||||
case LINEAR:
|
||||
return getLinearMultiplier();
|
||||
@ -98,11 +98,11 @@ public class ConfigExperienceFormula {
|
||||
return configExperienceFormulaExponential.getExponentialBaseModifier();
|
||||
}
|
||||
|
||||
public float getExponentialMultiplier() {
|
||||
public double getExponentialMultiplier() {
|
||||
return configExperienceFormulaExponential.getExponentialMultiplier();
|
||||
}
|
||||
|
||||
public float getExponentialExponent() {
|
||||
public double getExponentialExponent() {
|
||||
return configExperienceFormulaExponential.getExponentialExponent();
|
||||
}
|
||||
|
||||
@ -110,7 +110,7 @@ public class ConfigExperienceFormula {
|
||||
return configExperienceFormulaLinear.getLinearBaseModifier();
|
||||
}
|
||||
|
||||
public float getLinearMultiplier() {
|
||||
public double getLinearMultiplier() {
|
||||
return configExperienceFormulaLinear.getLinearMultiplier();
|
||||
}
|
||||
}
|
@ -7,27 +7,27 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||
public class ConfigExperienceFormulaExponential {
|
||||
|
||||
private static final int BASE_DEFAULT = 2000;
|
||||
private static final float MULTIPLIER_DEFAULT = 0.1f;
|
||||
private static final float EXPONENT_DEFAULT = 1.80f;
|
||||
private static final double MULTIPLIER_DEFAULT = 0.1f;
|
||||
private static final double EXPONENT_DEFAULT = 1.80f;
|
||||
|
||||
@Setting(value = "Base-Amount", comment = "Default value: " + BASE_DEFAULT)
|
||||
private int baseModifier = BASE_DEFAULT;
|
||||
|
||||
@Setting(value = "Multiplier", comment = "Default value: " + MULTIPLIER_DEFAULT)
|
||||
private float multiplier = MULTIPLIER_DEFAULT;
|
||||
private double multiplier = MULTIPLIER_DEFAULT;
|
||||
|
||||
@Setting(value = "Exponent", comment = "Default value: " + EXPONENT_DEFAULT)
|
||||
private float exponent = EXPONENT_DEFAULT;
|
||||
private double exponent = EXPONENT_DEFAULT;
|
||||
|
||||
public int getExponentialBaseModifier() {
|
||||
return baseModifier;
|
||||
}
|
||||
|
||||
public float getExponentialMultiplier() {
|
||||
public double getExponentialMultiplier() {
|
||||
return multiplier;
|
||||
}
|
||||
|
||||
public float getExponentialExponent() {
|
||||
public double getExponentialExponent() {
|
||||
return exponent;
|
||||
}
|
||||
}
|
@ -7,19 +7,19 @@ import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
||||
public class ConfigExperienceFormulaLinear {
|
||||
|
||||
private static final int BASE_DEFAULT = 1020;
|
||||
private static final float MULTIPLIER_DEFAULT = 20.0F;
|
||||
private static final double MULTIPLIER_DEFAULT = 20.0F;
|
||||
|
||||
@Setting(value = "Base-Amount", comment = "Default value: " + BASE_DEFAULT)
|
||||
private int baseModifier = BASE_DEFAULT;
|
||||
|
||||
@Setting(value = "Multiplier", comment = "Default value: " + MULTIPLIER_DEFAULT)
|
||||
private float multiplier = MULTIPLIER_DEFAULT;
|
||||
private double multiplier = MULTIPLIER_DEFAULT;
|
||||
|
||||
public int getLinearBaseModifier() {
|
||||
return baseModifier;
|
||||
}
|
||||
|
||||
public float getLinearMultiplier() {
|
||||
public double getLinearMultiplier() {
|
||||
return multiplier;
|
||||
}
|
||||
|
||||
|
@ -86,7 +86,7 @@ public class ConfigLeveling {
|
||||
return configExperienceBars;
|
||||
}
|
||||
|
||||
public float getGuaranteedMinimums() {
|
||||
public double getGuaranteedMinimums() {
|
||||
return configLevelingDiminishedReturns.getGuaranteedMinimums();
|
||||
}
|
||||
|
||||
|
@ -25,8 +25,8 @@ public class CustomXPPerkSerializer implements TypeSerializer<CustomXPPerk> {
|
||||
public CustomXPPerk deserialize(@NonNull TypeToken<?> type, @NonNull ConfigurationNode value) throws ObjectMappingException {
|
||||
String perkName = value.getNode(PERK_NAME).getValue(TypeToken.of(String.class));
|
||||
|
||||
Map<PrimarySkillType, Float> map = value.getNode(XP_BOOST_NODE_ROOT).getValue(new TypeToken<Map<PrimarySkillType, Float>>(){});
|
||||
HashMap<PrimarySkillType, Float> xpBoostHashMap = new HashMap<>(map);
|
||||
Map<PrimarySkillType, Double> map = value.getNode(XP_BOOST_NODE_ROOT).getValue(new TypeToken<Map<PrimarySkillType, Double>>(){});
|
||||
HashMap<PrimarySkillType, Double> xpBoostHashMap = new HashMap<>(map);
|
||||
|
||||
CustomXPPerk customXPPerk = new CustomXPPerk(perkName);
|
||||
customXPPerk.setCustomXPMultiplierMap(xpBoostHashMap);
|
||||
@ -38,15 +38,15 @@ public class CustomXPPerkSerializer implements TypeSerializer<CustomXPPerk> {
|
||||
public void serialize(@NonNull TypeToken<?> type, @Nullable CustomXPPerk obj, @NonNull ConfigurationNode value) throws ObjectMappingException {
|
||||
String name = obj.getPerkName();
|
||||
|
||||
HashMap<PrimarySkillType, Float> xpBoostMap = new HashMap<>();
|
||||
HashMap<PrimarySkillType, Double> xpBoostMap = new HashMap<>();
|
||||
|
||||
value.getNode(PERK_NAME).setValue(name);
|
||||
|
||||
for (PrimarySkillType primarySkillType : PrimarySkillType.values()) {
|
||||
float xpMultValue = obj.getXPMultiplierValue(primarySkillType);
|
||||
Double xpMultValue = obj.getXPMultiplierValue(primarySkillType);
|
||||
|
||||
//Ignore default values
|
||||
if (xpMultValue == 1.0F)
|
||||
if (xpMultValue == 1.0)
|
||||
continue;
|
||||
|
||||
xpBoostMap.put(primarySkillType, obj.getXPMultiplierValue(primarySkillType));
|
||||
|
@ -17,8 +17,8 @@ public class DamagePropertySerializer implements TypeSerializer<DamageProperty>
|
||||
@Nullable
|
||||
@Override
|
||||
public DamageProperty deserialize(@NonNull TypeToken<?> type, @NonNull ConfigurationNode value) throws ObjectMappingException {
|
||||
Float pvp = value.getNode(PVP_NODE).getValue(TypeToken.of(Float.class));
|
||||
Float pve = value.getNode(PVE_NODE).getValue(TypeToken.of(Float.class));
|
||||
Double pvp = value.getNode(PVP_NODE).getValue(TypeToken.of(Double.class));
|
||||
Double pve = value.getNode(PVE_NODE).getValue(TypeToken.of(Double.class));
|
||||
DamageProperty damageProperty = new AbstractDamageProperty(pve, pvp);
|
||||
return damageProperty;
|
||||
}
|
||||
|
@ -1118,7 +1118,7 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
|
||||
|
||||
private PlayerProfile loadFromLine(String[] character) {
|
||||
Map<PrimarySkillType, Integer> skills = getSkillMapFromLine(character); // Skill levels
|
||||
Map<PrimarySkillType, Float> skillsXp = new EnumMap<>(PrimarySkillType.class); // Skill & XP
|
||||
Map<PrimarySkillType, Double> skillsXp = new EnumMap<>(PrimarySkillType.class); // Skill & XP
|
||||
Map<SuperAbilityType, Integer> skillsDATS = new EnumMap<>(SuperAbilityType.class); // Ability & Cooldown
|
||||
Map<UniqueDataType, Integer> uniquePlayerDataMap = new EnumMap<>(UniqueDataType.class);
|
||||
MobHealthbarType mobHealthbarType;
|
||||
@ -1126,19 +1126,19 @@ public final class FlatfileDatabaseManager implements DatabaseManager {
|
||||
|
||||
// TODO on updates, put new values in a try{} ?
|
||||
|
||||
skillsXp.put(PrimarySkillType.TAMING, (float) Integer.valueOf(character[EXP_TAMING]));
|
||||
skillsXp.put(PrimarySkillType.MINING, (float) Integer.valueOf(character[EXP_MINING]));
|
||||
skillsXp.put(PrimarySkillType.REPAIR, (float) Integer.valueOf(character[EXP_REPAIR]));
|
||||
skillsXp.put(PrimarySkillType.WOODCUTTING, (float) Integer.valueOf(character[EXP_WOODCUTTING]));
|
||||
skillsXp.put(PrimarySkillType.UNARMED, (float) Integer.valueOf(character[EXP_UNARMED]));
|
||||
skillsXp.put(PrimarySkillType.HERBALISM, (float) Integer.valueOf(character[EXP_HERBALISM]));
|
||||
skillsXp.put(PrimarySkillType.EXCAVATION, (float) Integer.valueOf(character[EXP_EXCAVATION]));
|
||||
skillsXp.put(PrimarySkillType.ARCHERY, (float) Integer.valueOf(character[EXP_ARCHERY]));
|
||||
skillsXp.put(PrimarySkillType.SWORDS, (float) Integer.valueOf(character[EXP_SWORDS]));
|
||||
skillsXp.put(PrimarySkillType.AXES, (float) Integer.valueOf(character[EXP_AXES]));
|
||||
skillsXp.put(PrimarySkillType.ACROBATICS, (float) Integer.valueOf(character[EXP_ACROBATICS]));
|
||||
skillsXp.put(PrimarySkillType.FISHING, (float) Integer.valueOf(character[EXP_FISHING]));
|
||||
skillsXp.put(PrimarySkillType.ALCHEMY, (float) Integer.valueOf(character[EXP_ALCHEMY]));
|
||||
skillsXp.put(PrimarySkillType.TAMING, (double) Integer.valueOf(character[EXP_TAMING]));
|
||||
skillsXp.put(PrimarySkillType.MINING, (double) Integer.valueOf(character[EXP_MINING]));
|
||||
skillsXp.put(PrimarySkillType.REPAIR, (double) Integer.valueOf(character[EXP_REPAIR]));
|
||||
skillsXp.put(PrimarySkillType.WOODCUTTING, (double) Integer.valueOf(character[EXP_WOODCUTTING]));
|
||||
skillsXp.put(PrimarySkillType.UNARMED, (double) Integer.valueOf(character[EXP_UNARMED]));
|
||||
skillsXp.put(PrimarySkillType.HERBALISM, (double) Integer.valueOf(character[EXP_HERBALISM]));
|
||||
skillsXp.put(PrimarySkillType.EXCAVATION, (double) Integer.valueOf(character[EXP_EXCAVATION]));
|
||||
skillsXp.put(PrimarySkillType.ARCHERY, (double) Integer.valueOf(character[EXP_ARCHERY]));
|
||||
skillsXp.put(PrimarySkillType.SWORDS, (double) Integer.valueOf(character[EXP_SWORDS]));
|
||||
skillsXp.put(PrimarySkillType.AXES, (double) Integer.valueOf(character[EXP_AXES]));
|
||||
skillsXp.put(PrimarySkillType.ACROBATICS, (double) Integer.valueOf(character[EXP_ACROBATICS]));
|
||||
skillsXp.put(PrimarySkillType.FISHING, (double) Integer.valueOf(character[EXP_FISHING]));
|
||||
skillsXp.put(PrimarySkillType.ALCHEMY, (double) Integer.valueOf(character[EXP_ALCHEMY]));
|
||||
|
||||
// Taming - Unused
|
||||
skillsDATS.put(SuperAbilityType.SUPER_BREAKER, Integer.valueOf(character[COOLDOWN_SUPER_BREAKER]));
|
||||
|
@ -1049,7 +1049,7 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
||||
|
||||
private PlayerProfile loadFromResult(String playerName, ResultSet result) throws SQLException {
|
||||
Map<PrimarySkillType, Integer> skills = new EnumMap<>(PrimarySkillType.class); // Skill & Level
|
||||
Map<PrimarySkillType, Float> skillsXp = new EnumMap<>(PrimarySkillType.class); // Skill & XP
|
||||
Map<PrimarySkillType, Double> skillsXp = new EnumMap<>(PrimarySkillType.class); // Skill & XP
|
||||
Map<SuperAbilityType, Integer> skillsDATS = new EnumMap<>(SuperAbilityType.class); // Ability & Cooldown
|
||||
Map<UniqueDataType, Integer> uniqueData = new EnumMap<>(UniqueDataType.class); //Chimaera wing cooldown and other misc info
|
||||
MobHealthbarType mobHealthbarType;
|
||||
@ -1076,19 +1076,19 @@ public final class SQLDatabaseManager implements DatabaseManager {
|
||||
skills.put(PrimarySkillType.FISHING, result.getInt(OFFSET_SKILLS + 12));
|
||||
skills.put(PrimarySkillType.ALCHEMY, result.getInt(OFFSET_SKILLS + 13));
|
||||
|
||||
skillsXp.put(PrimarySkillType.TAMING, result.getFloat(OFFSET_XP + 1));
|
||||
skillsXp.put(PrimarySkillType.MINING, result.getFloat(OFFSET_XP + 2));
|
||||
skillsXp.put(PrimarySkillType.REPAIR, result.getFloat(OFFSET_XP + 3));
|
||||
skillsXp.put(PrimarySkillType.WOODCUTTING, result.getFloat(OFFSET_XP + 4));
|
||||
skillsXp.put(PrimarySkillType.UNARMED, result.getFloat(OFFSET_XP + 5));
|
||||
skillsXp.put(PrimarySkillType.HERBALISM, result.getFloat(OFFSET_XP + 6));
|
||||
skillsXp.put(PrimarySkillType.EXCAVATION, result.getFloat(OFFSET_XP + 7));
|
||||
skillsXp.put(PrimarySkillType.ARCHERY, result.getFloat(OFFSET_XP + 8));
|
||||
skillsXp.put(PrimarySkillType.SWORDS, result.getFloat(OFFSET_XP + 9));
|
||||
skillsXp.put(PrimarySkillType.AXES, result.getFloat(OFFSET_XP + 10));
|
||||
skillsXp.put(PrimarySkillType.ACROBATICS, result.getFloat(OFFSET_XP + 11));
|
||||
skillsXp.put(PrimarySkillType.FISHING, result.getFloat(OFFSET_XP + 12));
|
||||
skillsXp.put(PrimarySkillType.ALCHEMY, result.getFloat(OFFSET_XP + 13));
|
||||
skillsXp.put(PrimarySkillType.TAMING, result.getDouble(OFFSET_XP + 1));
|
||||
skillsXp.put(PrimarySkillType.MINING, result.getDouble(OFFSET_XP + 2));
|
||||
skillsXp.put(PrimarySkillType.REPAIR, result.getDouble(OFFSET_XP + 3));
|
||||
skillsXp.put(PrimarySkillType.WOODCUTTING, result.getDouble(OFFSET_XP + 4));
|
||||
skillsXp.put(PrimarySkillType.UNARMED, result.getDouble(OFFSET_XP + 5));
|
||||
skillsXp.put(PrimarySkillType.HERBALISM, result.getDouble(OFFSET_XP + 6));
|
||||
skillsXp.put(PrimarySkillType.EXCAVATION, result.getDouble(OFFSET_XP + 7));
|
||||
skillsXp.put(PrimarySkillType.ARCHERY, result.getDouble(OFFSET_XP + 8));
|
||||
skillsXp.put(PrimarySkillType.SWORDS, result.getDouble(OFFSET_XP + 9));
|
||||
skillsXp.put(PrimarySkillType.AXES, result.getDouble(OFFSET_XP + 10));
|
||||
skillsXp.put(PrimarySkillType.ACROBATICS, result.getDouble(OFFSET_XP + 11));
|
||||
skillsXp.put(PrimarySkillType.FISHING, result.getDouble(OFFSET_XP + 12));
|
||||
skillsXp.put(PrimarySkillType.ALCHEMY, result.getDouble(OFFSET_XP + 13));
|
||||
|
||||
// Taming - Unused - result.getInt(OFFSET_DATS + 1)
|
||||
skillsDATS.put(SuperAbilityType.SUPER_BREAKER, result.getInt(OFFSET_DATS + 2));
|
||||
|
@ -7,7 +7,7 @@ import java.util.HashMap;
|
||||
public class CustomXPPerk {
|
||||
|
||||
private String perkName;
|
||||
private HashMap<PrimarySkillType, Float> customXPMultiplierMap;
|
||||
private HashMap<PrimarySkillType, Double> customXPMultiplierMap;
|
||||
|
||||
public CustomXPPerk(String perkName) {
|
||||
this.perkName = perkName;
|
||||
@ -20,7 +20,7 @@ public class CustomXPPerk {
|
||||
* @param primarySkillType target skill
|
||||
* @param xpMult xp multiplier
|
||||
*/
|
||||
public void setCustomXPValue(PrimarySkillType primarySkillType, float xpMult) {
|
||||
public void setCustomXPValue(PrimarySkillType primarySkillType, Double xpMult) {
|
||||
customXPMultiplierMap.put(primarySkillType, xpMult);
|
||||
}
|
||||
|
||||
@ -31,7 +31,7 @@ public class CustomXPPerk {
|
||||
* @param primarySkillType target skill
|
||||
* @return this custom perks XP multiplier for target skill, defaults to 1.0D if it doesn't exist
|
||||
*/
|
||||
public float getXPMultiplierValue(PrimarySkillType primarySkillType) {
|
||||
public double getXPMultiplierValue(PrimarySkillType primarySkillType) {
|
||||
if (customXPMultiplierMap.get(primarySkillType) == null)
|
||||
return 1.0F;
|
||||
|
||||
@ -51,7 +51,7 @@ public class CustomXPPerk {
|
||||
* Set the custom XP multiplier map for this perk (this will override all values currently held)
|
||||
* @param customXPMultiplierMap new custom xp multiplier map
|
||||
*/
|
||||
public void setCustomXPMultiplierMap(HashMap<PrimarySkillType, Float> customXPMultiplierMap) {
|
||||
public void setCustomXPMultiplierMap(HashMap<PrimarySkillType, Double> customXPMultiplierMap) {
|
||||
this.customXPMultiplierMap = customXPMultiplierMap;
|
||||
}
|
||||
|
||||
|
@ -8,10 +8,10 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class SkillXpGain implements Delayed {
|
||||
private final long expiryTime;
|
||||
private final float xp;
|
||||
private final double xp;
|
||||
private final PrimarySkillType type;
|
||||
|
||||
public SkillXpGain(PrimarySkillType type, float xp) {
|
||||
public SkillXpGain(PrimarySkillType type, double xp) {
|
||||
this.expiryTime = System.currentTimeMillis() + getDuration();
|
||||
this.xp = xp;
|
||||
this.type = type;
|
||||
@ -25,7 +25,7 @@ public class SkillXpGain implements Delayed {
|
||||
return type;
|
||||
}
|
||||
|
||||
public float getXp() {
|
||||
public double getXp() {
|
||||
return xp;
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@ public class Party {
|
||||
private boolean locked;
|
||||
private Party ally;
|
||||
private int level;
|
||||
private float xp;
|
||||
private double xp;
|
||||
|
||||
private ShareMode xpShareMode = ShareMode.NONE;
|
||||
private ShareMode itemShareMode = ShareMode.NONE;
|
||||
@ -171,20 +171,20 @@ public class Party {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public float getXp() {
|
||||
public double getXp() {
|
||||
return xp;
|
||||
}
|
||||
|
||||
public void setXp(float xp) {
|
||||
public void setXp(double xp) {
|
||||
this.xp = xp;
|
||||
}
|
||||
|
||||
public void addXp(float xp) {
|
||||
public void addXp(double xp) {
|
||||
setXp(getXp() + xp);
|
||||
}
|
||||
|
||||
protected float levelUp() {
|
||||
float xpRemoved = getXpToLevel();
|
||||
protected double levelUp() {
|
||||
double xpRemoved = getXpToLevel();
|
||||
|
||||
setLevel(getLevel() + 1);
|
||||
setXp(getXp() - xpRemoved);
|
||||
@ -206,7 +206,7 @@ public class Party {
|
||||
*
|
||||
* @param xp Experience amount to add
|
||||
*/
|
||||
public void applyXpGain(float xp) {
|
||||
public void applyXpGain(double xp) {
|
||||
if (!EventUtils.handlePartyXpGainEvent(this, xp)) {
|
||||
return;
|
||||
}
|
||||
@ -216,7 +216,7 @@ public class Party {
|
||||
}
|
||||
|
||||
int levelsGained = 0;
|
||||
float xpRemoved = 0;
|
||||
double xpRemoved = 0;
|
||||
|
||||
while (getXp() >= getXpToLevel()) {
|
||||
/*if (hasReachedLevelCap()) {
|
||||
|
@ -89,7 +89,7 @@ public class McMMOPlayer {
|
||||
//private int chimeraWingLastUse;
|
||||
private Location teleportCommence;
|
||||
private boolean isUsingUnarmed;
|
||||
private HashMap<PrimarySkillType, Float> personalXPModifiers;
|
||||
private HashMap<PrimarySkillType, Double> personalXPModifiers;
|
||||
|
||||
public McMMOPlayer(Player player, PlayerProfile profile) {
|
||||
String playerName = player.getName();
|
||||
@ -155,7 +155,7 @@ public class McMMOPlayer {
|
||||
* @param primarySkillType target primary skill
|
||||
* @return this players personal XP multiplier for target PrimarySkillType
|
||||
*/
|
||||
public float getPlayerSpecificXPMult(PrimarySkillType primarySkillType) {
|
||||
public Double getPlayerSpecificXPMult(PrimarySkillType primarySkillType) {
|
||||
return personalXPModifiers.get(primarySkillType);
|
||||
}
|
||||
|
||||
@ -479,7 +479,7 @@ public class McMMOPlayer {
|
||||
* @param skill Skill being used
|
||||
* @param xp Experience amount to process
|
||||
*/
|
||||
public void beginXpGain(PrimarySkillType skill, float xp, XPGainReason xpGainReason, XPGainSource xpGainSource) {
|
||||
public void beginXpGain(PrimarySkillType skill, double xp, XPGainReason xpGainReason, XPGainSource xpGainSource) {
|
||||
Validate.isTrue(xp >= 0.0, "XP gained should be greater than or equal to zero.");
|
||||
|
||||
if (xp <= 0.0) {
|
||||
@ -488,7 +488,7 @@ public class McMMOPlayer {
|
||||
|
||||
if (skill.isChildSkill()) {
|
||||
Set<PrimarySkillType> parentSkills = FamilyTree.getParents(skill);
|
||||
float splitXp = xp / parentSkills.size();
|
||||
double splitXp = xp / parentSkills.size();
|
||||
|
||||
for (PrimarySkillType parentSkill : parentSkills) {
|
||||
if (parentSkill.getPermissions(player)) {
|
||||
@ -513,7 +513,7 @@ public class McMMOPlayer {
|
||||
* @param skill Skill being used
|
||||
* @param xp Experience amount to process
|
||||
*/
|
||||
public void beginUnsharedXpGain(PrimarySkillType skill, float xp, XPGainReason xpGainReason, XPGainSource xpGainSource) {
|
||||
public void beginUnsharedXpGain(PrimarySkillType skill, double xp, XPGainReason xpGainReason, XPGainSource xpGainSource) {
|
||||
if(player.getGameMode() == GameMode.CREATIVE)
|
||||
return;
|
||||
|
||||
@ -534,7 +534,7 @@ public class McMMOPlayer {
|
||||
* @param primarySkillType Skill being used
|
||||
* @param xp Experience amount to add
|
||||
*/
|
||||
public void applyXpGain(PrimarySkillType primarySkillType, float xp, XPGainReason xpGainReason, XPGainSource xpGainSource) {
|
||||
public void applyXpGain(PrimarySkillType primarySkillType, double xp, XPGainReason xpGainReason, XPGainSource xpGainSource) {
|
||||
if (!primarySkillType.getPermissions(player)) {
|
||||
return;
|
||||
}
|
||||
@ -569,7 +569,7 @@ public class McMMOPlayer {
|
||||
}
|
||||
|
||||
int levelsGained = 0;
|
||||
float xpRemoved = 0;
|
||||
double xpRemoved = 0;
|
||||
|
||||
while (getSkillXpLevelRaw(primarySkillType) >= getXpToLevel(primarySkillType)) {
|
||||
if (mcMMO.getPlayerLevelingSettings().isLevelCapEnabled(primarySkillType)
|
||||
@ -769,14 +769,14 @@ public class McMMOPlayer {
|
||||
* @param xp Experience amount to process
|
||||
* @return Modified experience
|
||||
*/
|
||||
private float modifyXpGain(PrimarySkillType primarySkillType, float xp) {
|
||||
private double modifyXpGain(PrimarySkillType primarySkillType, double xp) {
|
||||
if (((primarySkillType.getMaxLevel() <= getSkillLevel(primarySkillType))
|
||||
&& mcMMO.getPlayerLevelingSettings().isLevelCapEnabled(primarySkillType))
|
||||
|| (mcMMO.getPlayerLevelingSettings().getConfigSectionLevelCaps().getPowerLevel().getLevelCap() <= getPowerLevel())) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
xp = (float) (xp / primarySkillType.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceManager().getGlobalXpMult());
|
||||
xp = (double) (xp / primarySkillType.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceManager().getGlobalXpMult());
|
||||
|
||||
//Multiply by the players personal XP rate
|
||||
return xp * personalXPModifiers.get(primarySkillType);
|
||||
@ -950,7 +950,7 @@ public class McMMOPlayer {
|
||||
return profile.getSkillLevel(skill);
|
||||
}
|
||||
|
||||
public float getSkillXpLevelRaw(PrimarySkillType skill) {
|
||||
public double getSkillXpLevelRaw(PrimarySkillType skill) {
|
||||
return profile.getSkillXpLevelRaw(skill);
|
||||
}
|
||||
|
||||
@ -958,7 +958,7 @@ public class McMMOPlayer {
|
||||
return profile.getSkillXpLevel(skill);
|
||||
}
|
||||
|
||||
public void setSkillXpLevel(PrimarySkillType skill, float xpLevel) {
|
||||
public void setSkillXpLevel(PrimarySkillType skill, double xpLevel) {
|
||||
profile.setSkillXpLevel(skill, xpLevel);
|
||||
}
|
||||
|
||||
@ -978,7 +978,7 @@ public class McMMOPlayer {
|
||||
profile.addLevels(skill, levels);
|
||||
}
|
||||
|
||||
public void addXp(PrimarySkillType skill, float xp) {
|
||||
public void addXp(PrimarySkillType skill, double xp) {
|
||||
profile.addXp(skill, xp);
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ public class PlayerProfile {
|
||||
private final String playerName;
|
||||
/* Skill Data */
|
||||
private final Map<PrimarySkillType, Integer> skills = new HashMap<>(); // Skill & Level
|
||||
private final Map<PrimarySkillType, Float> skillsXp = new HashMap<>(); // Skill & XP
|
||||
private final Map<PrimarySkillType, Double> skillsXp = new HashMap<>(); // Skill & XP
|
||||
private final Map<SuperAbilityType, Integer> abilityDATS = new HashMap<>(); // Ability & Cooldown
|
||||
private final Map<UniqueDataType, Integer> uniquePlayerData = new HashMap<>(); //Misc data that doesn't fit into other categories (chimaera wing, etc..)
|
||||
private UUID uuid;
|
||||
@ -32,7 +32,7 @@ public class PlayerProfile {
|
||||
private int saveAttempts = 0;
|
||||
// Store previous XP gains for diminished returns
|
||||
private DelayQueue<SkillXpGain> gainedSkillsXp = new DelayQueue<SkillXpGain>();
|
||||
private HashMap<PrimarySkillType, Float> rollingSkillsXp = new HashMap<PrimarySkillType, Float>();
|
||||
private HashMap<PrimarySkillType, Double> rollingSkillsXp = new HashMap<PrimarySkillType, Double>();
|
||||
|
||||
@Deprecated
|
||||
public PlayerProfile(String playerName) {
|
||||
@ -52,7 +52,7 @@ public class PlayerProfile {
|
||||
|
||||
for (PrimarySkillType primarySkillType : PrimarySkillType.NON_CHILD_SKILLS) {
|
||||
skills.put(primarySkillType, mcMMO.getPlayerLevelingSettings().getConfigSectionLevelingGeneral().getStartingLevel());
|
||||
skillsXp.put(primarySkillType, 0F);
|
||||
skillsXp.put(primarySkillType, 0.0);
|
||||
}
|
||||
|
||||
//Misc Cooldowns
|
||||
@ -70,7 +70,7 @@ public class PlayerProfile {
|
||||
this.loaded = isLoaded;
|
||||
}
|
||||
|
||||
public PlayerProfile(String playerName, UUID uuid, Map<PrimarySkillType, Integer> levelData, Map<PrimarySkillType, Float> xpData, Map<SuperAbilityType, Integer> cooldownData, MobHealthbarType mobHealthbarType, int scoreboardTipsShown, Map<UniqueDataType, Integer> uniqueProfileData) {
|
||||
public PlayerProfile(String playerName, UUID uuid, Map<PrimarySkillType, Integer> levelData, Map<PrimarySkillType, Double> xpData, Map<SuperAbilityType, Integer> cooldownData, MobHealthbarType mobHealthbarType, int scoreboardTipsShown, Map<UniqueDataType, Integer> uniqueProfileData) {
|
||||
this.playerName = playerName;
|
||||
this.uuid = uuid;
|
||||
this.mobHealthbarType = mobHealthbarType;
|
||||
@ -235,7 +235,7 @@ public class PlayerProfile {
|
||||
return skill.isChildSkill() ? getChildSkillLevel(skill) : skills.get(skill);
|
||||
}
|
||||
|
||||
public float getSkillXpLevelRaw(PrimarySkillType skill) {
|
||||
public double getSkillXpLevelRaw(PrimarySkillType skill) {
|
||||
return skillsXp.get(skill);
|
||||
}
|
||||
|
||||
@ -243,7 +243,7 @@ public class PlayerProfile {
|
||||
return (int) Math.floor(getSkillXpLevelRaw(skill));
|
||||
}
|
||||
|
||||
public void setSkillXpLevel(PrimarySkillType skill, float xpLevel) {
|
||||
public void setSkillXpLevel(PrimarySkillType skill, double xpLevel) {
|
||||
if (skill.isChildSkill()) {
|
||||
return;
|
||||
}
|
||||
@ -253,8 +253,8 @@ public class PlayerProfile {
|
||||
skillsXp.put(skill, xpLevel);
|
||||
}
|
||||
|
||||
protected float levelUp(PrimarySkillType skill) {
|
||||
float xpRemoved = getXpToLevel(skill);
|
||||
protected double levelUp(PrimarySkillType skill) {
|
||||
double xpRemoved = getXpToLevel(skill);
|
||||
|
||||
changed = true;
|
||||
|
||||
@ -280,7 +280,7 @@ public class PlayerProfile {
|
||||
skillsXp.put(skill, skillsXp.get(skill) - xp);
|
||||
}
|
||||
|
||||
public void removeXp(PrimarySkillType skill, float xp) {
|
||||
public void removeXp(PrimarySkillType skill, double xp) {
|
||||
if (skill.isChildSkill()) {
|
||||
return;
|
||||
}
|
||||
@ -308,7 +308,7 @@ public class PlayerProfile {
|
||||
level = 0;
|
||||
|
||||
skills.put(skill, level);
|
||||
skillsXp.put(skill, 0F);
|
||||
skillsXp.put(skill, 0.0);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -327,12 +327,12 @@ public class PlayerProfile {
|
||||
* @param skill Type of skill to add experience to
|
||||
* @param xp Number of experience to add
|
||||
*/
|
||||
public void addXp(PrimarySkillType skill, float xp) {
|
||||
public void addXp(PrimarySkillType skill, double xp) {
|
||||
changed = true;
|
||||
|
||||
if (skill.isChildSkill()) {
|
||||
Set<PrimarySkillType> parentSkills = FamilyTree.getParents(skill);
|
||||
float dividedXP = (xp / parentSkills.size());
|
||||
double dividedXP = (xp / parentSkills.size());
|
||||
|
||||
for (PrimarySkillType parentSkill : parentSkills) {
|
||||
skillsXp.put(parentSkill, skillsXp.get(parentSkill) + dividedXP);
|
||||
@ -348,8 +348,8 @@ public class PlayerProfile {
|
||||
*
|
||||
* @return xp Experience amount registered
|
||||
*/
|
||||
public float getRegisteredXpGain(PrimarySkillType primarySkillType) {
|
||||
float xp = 0F;
|
||||
public double getRegisteredXpGain(PrimarySkillType primarySkillType) {
|
||||
double xp = 0F;
|
||||
|
||||
if (rollingSkillsXp.get(primarySkillType) != null) {
|
||||
xp = rollingSkillsXp.get(primarySkillType);
|
||||
@ -365,7 +365,7 @@ public class PlayerProfile {
|
||||
* @param primarySkillType Skill being used
|
||||
* @param xp Experience amount to add
|
||||
*/
|
||||
public void registerXpGain(PrimarySkillType primarySkillType, float xp) {
|
||||
public void registerXpGain(PrimarySkillType primarySkillType, double xp) {
|
||||
gainedSkillsXp.add(new SkillXpGain(primarySkillType, xp));
|
||||
rollingSkillsXp.put(primarySkillType, getRegisteredXpGain(primarySkillType) + xp);
|
||||
}
|
||||
|
@ -10,15 +10,15 @@ import org.bukkit.event.HandlerList;
|
||||
*/
|
||||
public class McMMOPlayerXpGainEvent extends McMMOPlayerExperienceEvent {
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private float xpGained;
|
||||
private double xpGained;
|
||||
|
||||
@Deprecated
|
||||
public McMMOPlayerXpGainEvent(Player player, PrimarySkillType skill, float xpGained) {
|
||||
public McMMOPlayerXpGainEvent(Player player, PrimarySkillType skill, double xpGained) {
|
||||
super(player, skill, XPGainReason.UNKNOWN);
|
||||
this.xpGained = xpGained;
|
||||
}
|
||||
|
||||
public McMMOPlayerXpGainEvent(Player player, PrimarySkillType skill, float xpGained, XPGainReason xpGainReason) {
|
||||
public McMMOPlayerXpGainEvent(Player player, PrimarySkillType skill, double xpGained, XPGainReason xpGainReason) {
|
||||
super(player, skill, xpGainReason);
|
||||
this.xpGained = xpGained;
|
||||
}
|
||||
@ -30,14 +30,14 @@ public class McMMOPlayerXpGainEvent extends McMMOPlayerExperienceEvent {
|
||||
/**
|
||||
* @return The amount of experience gained in this event
|
||||
*/
|
||||
public float getRawXpGained() {
|
||||
public double getRawXpGained() {
|
||||
return xpGained;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param xpGained int amount of experience gained in this event
|
||||
*/
|
||||
public void setRawXpGained(float xpGained) {
|
||||
public void setRawXpGained(double xpGained) {
|
||||
this.xpGained = xpGained;
|
||||
}
|
||||
|
||||
|
@ -13,10 +13,10 @@ public class McMMOPlayerDeathPenaltyEvent extends PlayerEvent implements Cancell
|
||||
**/
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private HashMap<String, Integer> levelChanged;
|
||||
private HashMap<String, Float> experienceChanged;
|
||||
private HashMap<String, Double> experienceChanged;
|
||||
private boolean cancelled;
|
||||
|
||||
public McMMOPlayerDeathPenaltyEvent(Player player, HashMap<String, Integer> levelChanged, HashMap<String, Float> experienceChanged) {
|
||||
public McMMOPlayerDeathPenaltyEvent(Player player, HashMap<String, Integer> levelChanged, HashMap<String, Double> experienceChanged) {
|
||||
super(player);
|
||||
this.levelChanged = levelChanged;
|
||||
this.experienceChanged = experienceChanged;
|
||||
@ -41,11 +41,11 @@ public class McMMOPlayerDeathPenaltyEvent extends PlayerEvent implements Cancell
|
||||
this.levelChanged = levelChanged;
|
||||
}
|
||||
|
||||
public HashMap<String, Float> getExperienceChanged() {
|
||||
public HashMap<String, Double> getExperienceChanged() {
|
||||
return experienceChanged;
|
||||
}
|
||||
|
||||
public void setExperienceChanged(HashMap<String, Float> experienceChanged) {
|
||||
public void setExperienceChanged(HashMap<String, Double> experienceChanged) {
|
||||
this.experienceChanged = experienceChanged;
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,7 @@ import java.util.HashMap;
|
||||
|
||||
public class McMMOPlayerStatLossEvent extends McMMOPlayerDeathPenaltyEvent {
|
||||
|
||||
public McMMOPlayerStatLossEvent(Player player, HashMap<String, Integer> levelChanged, HashMap<String, Float> experienceChanged) {
|
||||
public McMMOPlayerStatLossEvent(Player player, HashMap<String, Integer> levelChanged, HashMap<String, Double> experienceChanged) {
|
||||
super(player, levelChanged, experienceChanged);
|
||||
}
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ import java.util.HashMap;
|
||||
public class McMMOPlayerVampirismEvent extends McMMOPlayerDeathPenaltyEvent {
|
||||
private boolean isVictim;
|
||||
|
||||
public McMMOPlayerVampirismEvent(Player player, boolean isVictim, HashMap<String, Integer> levelChanged, HashMap<String, Float> experienceChanged) {
|
||||
public McMMOPlayerVampirismEvent(Player player, boolean isVictim, HashMap<String, Integer> levelChanged, HashMap<String, Double> experienceChanged) {
|
||||
super(player, levelChanged, experienceChanged);
|
||||
this.isVictim = isVictim;
|
||||
}
|
||||
|
@ -11,10 +11,10 @@ public class McMMOPartyXpGainEvent extends Event implements Cancellable {
|
||||
**/
|
||||
private static final HandlerList handlers = new HandlerList();
|
||||
private Party party;
|
||||
private float xpGained;
|
||||
private double xpGained;
|
||||
private boolean cancelled;
|
||||
|
||||
public McMMOPartyXpGainEvent(Party party, float xpGained) {
|
||||
public McMMOPartyXpGainEvent(Party party, double xpGained) {
|
||||
this.party = party;
|
||||
this.xpGained = xpGained;
|
||||
this.cancelled = false;
|
||||
@ -31,14 +31,14 @@ public class McMMOPartyXpGainEvent extends Event implements Cancellable {
|
||||
/**
|
||||
* @return The amount of experience gained in this event
|
||||
*/
|
||||
public float getRawXpGained() {
|
||||
public double getRawXpGained() {
|
||||
return xpGained;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param xpGained set amount of experience gained in this event
|
||||
*/
|
||||
public void setRawXpGained(float xpGained) {
|
||||
public void setRawXpGained(double xpGained) {
|
||||
this.xpGained = xpGained;
|
||||
}
|
||||
|
||||
|
@ -116,19 +116,19 @@ public class SelfListener implements Listener {
|
||||
return;
|
||||
}
|
||||
|
||||
final float rawXp = event.getRawXpGained();
|
||||
final double rawXp = event.getRawXpGained();
|
||||
|
||||
float guaranteedMinimum = mcMMO.getConfigManager().getConfigLeveling().getGuaranteedMinimums() * rawXp;
|
||||
double guaranteedMinimum = mcMMO.getConfigManager().getConfigLeveling().getGuaranteedMinimums() * rawXp;
|
||||
|
||||
float modifiedThreshold = (float) (threshold / primarySkillType.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceManager().getGlobalXpMult());
|
||||
float difference = (mcMMOPlayer.getProfile().getRegisteredXpGain(primarySkillType) - modifiedThreshold) / modifiedThreshold;
|
||||
double modifiedThreshold = (double) (threshold / primarySkillType.getXpModifier() * mcMMO.getDynamicSettingsManager().getExperienceManager().getGlobalXpMult());
|
||||
double difference = (mcMMOPlayer.getProfile().getRegisteredXpGain(primarySkillType) - modifiedThreshold) / modifiedThreshold;
|
||||
|
||||
if (difference > 0) {
|
||||
// System.out.println("Total XP Earned: " + mcMMOPlayer.getProfile().getRegisteredXpGain(primarySkillType) + " / Threshold value: " + threshold);
|
||||
// System.out.println(difference * 100 + "% over the threshold!");
|
||||
// System.out.println("Previous: " + event.getRawXpGained());
|
||||
// System.out.println("Adjusted XP " + (event.getRawXpGained() - (event.getRawXpGained() * difference)));
|
||||
float newValue = rawXp - (rawXp * difference);
|
||||
double newValue = rawXp - (rawXp * difference);
|
||||
|
||||
/*
|
||||
* Make sure players get a guaranteed minimum of XP
|
||||
|
@ -29,7 +29,7 @@ public final class ShareHandler {
|
||||
* @param primarySkillType Skill being used
|
||||
* @return True is the xp has been shared
|
||||
*/
|
||||
public static boolean handleXpShare(float xp, McMMOPlayer mcMMOPlayer, PrimarySkillType primarySkillType, XPGainReason xpGainReason) {
|
||||
public static boolean handleXpShare(double xp, McMMOPlayer mcMMOPlayer, PrimarySkillType primarySkillType, XPGainReason xpGainReason) {
|
||||
Party party = mcMMOPlayer.getParty();
|
||||
|
||||
if (party.getXpShareMode() != ShareMode.EQUAL) {
|
||||
@ -48,7 +48,7 @@ public final class ShareHandler {
|
||||
double shareBonus = Math.min(mcMMO.getPartyXPShareSettings().getPartyShareXPBonusBase()
|
||||
+ (partySize * mcMMO.getPartyXPShareSettings().getPartyShareBonusIncrease()),
|
||||
mcMMO.getPartyXPShareSettings().getPartyShareBonusCap());
|
||||
float splitXp = (float) (xp / partySize * shareBonus);
|
||||
double splitXp = (double) (xp / partySize * shareBonus);
|
||||
|
||||
for (Player member : nearMembers) {
|
||||
//Profile not loaded
|
||||
|
@ -25,6 +25,18 @@ public abstract class SkillManager {
|
||||
return mcMMOPlayer.getSkillLevel(skill);
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies XP to a player, provides SELF as an XpGainSource source
|
||||
*
|
||||
* @param xp amount of XP to apply
|
||||
* @param xpGainReason the reason for the XP gain
|
||||
* @deprecated use applyXpGain(float, XPGainReason, XPGainSource)
|
||||
*/
|
||||
@Deprecated
|
||||
public void applyXpGain(double xp, XPGainReason xpGainReason) {
|
||||
mcMMOPlayer.beginXpGain(skill, xp, xpGainReason, XPGainSource.SELF);
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies XP to a player, provides SELF as an XpGainSource source
|
||||
*
|
||||
@ -48,6 +60,17 @@ public abstract class SkillManager {
|
||||
mcMMOPlayer.beginXpGain(skill, xp, xpGainReason, xpGainSource);
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies XP to a player
|
||||
*
|
||||
* @param xp amount of XP to apply
|
||||
* @param xpGainReason the reason for the XP gain
|
||||
* @param xpGainSource the source of the XP
|
||||
*/
|
||||
public void applyXpGain(double xp, XPGainReason xpGainReason, XPGainSource xpGainSource) {
|
||||
mcMMOPlayer.beginXpGain(skill, xp, xpGainReason, xpGainSource);
|
||||
}
|
||||
|
||||
public XPGainReason getXPGainReason(LivingEntity target, Entity damager) {
|
||||
return (damager instanceof Player && target instanceof Player) ? XPGainReason.PVP : XPGainReason.PVE;
|
||||
}
|
||||
|
@ -20,7 +20,7 @@ public final class Fishing {
|
||||
public static Fishing instance;
|
||||
private final long fishingRodCastCdMilliseconds;
|
||||
private final int overfishLimit;
|
||||
private final float boundingBoxSize;
|
||||
private final double boundingBoxSize;
|
||||
private HashMap<Material, List<Enchantment>> enchantableCache = new HashMap<>();
|
||||
private HashMap<Material, Integer> fishingXpRewardMap;
|
||||
private Set<Biome> masterAnglerBiomes = BiomeAdapter.WATER_BIOMES;
|
||||
@ -121,7 +121,7 @@ public final class Fishing {
|
||||
return overfishLimit;
|
||||
}
|
||||
|
||||
public float getBoundingBoxSize() {
|
||||
public double getBoundingBoxSize() {
|
||||
return boundingBoxSize;
|
||||
}
|
||||
}
|
||||
|
@ -173,7 +173,7 @@ public class RepairManager extends SkillManager {
|
||||
inventory.removeItem(toRemove);
|
||||
|
||||
// Give out XP like candy
|
||||
applyXpGain((float) ((getPercentageRepaired(startDurability, newDurability, repairable.getMaximumDurability())
|
||||
applyXpGain(((getPercentageRepaired(startDurability, newDurability, repairable.getMaximumDurability())
|
||||
* repairable.getXpMultiplier())
|
||||
* mcMMO.getConfigManager().getConfigExperience().getRepairXPBase())
|
||||
* mcMMO.getConfigManager().getConfigExperience().getExperienceRepair().getItemMaterialXPMultiplier(repairable.getRepairItemMaterialCategory()), XPGainReason.PVE);
|
||||
@ -188,7 +188,7 @@ public class RepairManager extends SkillManager {
|
||||
item.setDurability(newDurability);
|
||||
}
|
||||
|
||||
private float getPercentageRepaired(short startDurability, short newDurability, short totalDurability) {
|
||||
private double getPercentageRepaired(short startDurability, short newDurability, short totalDurability) {
|
||||
return ((startDurability - newDurability) / (float) totalDurability);
|
||||
}
|
||||
|
||||
|
@ -203,7 +203,7 @@ public class EventUtils {
|
||||
|
||||
}
|
||||
|
||||
public static boolean handleLevelChangeEvent(Player player, PrimarySkillType skill, int levelsChanged, float xpRemoved, boolean isLevelUp, XPGainReason xpGainReason) {
|
||||
public static boolean handleLevelChangeEvent(Player player, PrimarySkillType skill, int levelsChanged, double xpRemoved, boolean isLevelUp, XPGainReason xpGainReason) {
|
||||
McMMOPlayerLevelChangeEvent event = isLevelUp ? new McMMOPlayerLevelUpEvent(player, skill, levelsChanged, xpGainReason) : new McMMOPlayerLevelDownEvent(player, skill, levelsChanged, xpGainReason);
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
@ -219,7 +219,7 @@ public class EventUtils {
|
||||
return !isCancelled;
|
||||
}
|
||||
|
||||
public static void handleLevelChangeEventEdit(Player player, PrimarySkillType skill, int levelsChanged, float xpRemoved, boolean isLevelUp, XPGainReason xpGainReason, int oldLevel) {
|
||||
public static void handleLevelChangeEventEdit(Player player, PrimarySkillType skill, int levelsChanged, double xpRemoved, boolean isLevelUp, XPGainReason xpGainReason, int oldLevel) {
|
||||
McMMOPlayerLevelChangeEvent event = isLevelUp ? new McMMOPlayerLevelUpEvent(player, skill, levelsChanged - oldLevel, xpGainReason) : new McMMOPlayerLevelDownEvent(player, skill, levelsChanged, xpGainReason);
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
@ -280,7 +280,7 @@ public class EventUtils {
|
||||
mcMMOPlayer.getPartyTeleportRecord().actualizeLastUse();
|
||||
}
|
||||
|
||||
public static boolean handlePartyXpGainEvent(Party party, float xpGained) {
|
||||
public static boolean handlePartyXpGainEvent(Party party, double xpGained) {
|
||||
McMMOPartyXpGainEvent event = new McMMOPartyXpGainEvent(party, xpGained);
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
@ -293,7 +293,7 @@ public class EventUtils {
|
||||
return !isCancelled;
|
||||
}
|
||||
|
||||
public static boolean handlePartyLevelChangeEvent(Party party, int levelsChanged, float xpRemoved) {
|
||||
public static boolean handlePartyLevelChangeEvent(Party party, int levelsChanged, double xpRemoved) {
|
||||
McMMOPartyLevelUpEvent event = new McMMOPartyLevelUpEvent(party, levelsChanged);
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
@ -308,7 +308,7 @@ public class EventUtils {
|
||||
return !isCancelled;
|
||||
}
|
||||
|
||||
public static boolean handleXpGainEvent(Player player, PrimarySkillType skill, float xpGained, XPGainReason xpGainReason) {
|
||||
public static boolean handleXpGainEvent(Player player, PrimarySkillType skill, double xpGained, XPGainReason xpGainReason) {
|
||||
McMMOPlayerXpGainEvent event = new McMMOPlayerXpGainEvent(player, skill, xpGained, xpGainReason);
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(event);
|
||||
|
||||
@ -322,7 +322,7 @@ public class EventUtils {
|
||||
return !isCancelled;
|
||||
}
|
||||
|
||||
public static boolean handleStatsLossEvent(Player player, HashMap<String, Integer> levelChanged, HashMap<String, Float> experienceChanged) {
|
||||
public static boolean handleStatsLossEvent(Player player, HashMap<String, Integer> levelChanged, HashMap<String, Double> experienceChanged) {
|
||||
if (UserManager.getPlayer(player) == null)
|
||||
return true;
|
||||
|
||||
@ -356,7 +356,7 @@ public class EventUtils {
|
||||
return !isCancelled;
|
||||
}
|
||||
|
||||
public static boolean handleVampirismEvent(Player killer, Player victim, HashMap<String, Integer> levelChanged, HashMap<String, Float> experienceChanged) {
|
||||
public static boolean handleVampirismEvent(Player killer, Player victim, HashMap<String, Integer> levelChanged, HashMap<String, Double> experienceChanged) {
|
||||
McMMOPlayerVampirismEvent eventKiller = new McMMOPlayerVampirismEvent(killer, false, levelChanged, experienceChanged);
|
||||
McMMOPlayerVampirismEvent eventVictim = new McMMOPlayerVampirismEvent(victim, true, levelChanged, experienceChanged);
|
||||
mcMMO.p.getServer().getPluginManager().callEvent(eventKiller);
|
||||
@ -366,10 +366,10 @@ public class EventUtils {
|
||||
|
||||
if (!isCancelled) {
|
||||
HashMap<String, Integer> levelChangedKiller = eventKiller.getLevelChanged();
|
||||
HashMap<String, Float> experienceChangedKiller = eventKiller.getExperienceChanged();
|
||||
HashMap<String, Double> experienceChangedKiller = eventKiller.getExperienceChanged();
|
||||
|
||||
HashMap<String, Integer> levelChangedVictim = eventVictim.getLevelChanged();
|
||||
HashMap<String, Float> experienceChangedVictim = eventVictim.getExperienceChanged();
|
||||
HashMap<String, Double> experienceChangedVictim = eventVictim.getExperienceChanged();
|
||||
|
||||
McMMOPlayer killerPlayer = UserManager.getPlayer(killer);
|
||||
|
||||
|
@ -25,12 +25,12 @@ public final class HardcoreManager {
|
||||
int totalLevelsLost = 0;
|
||||
|
||||
HashMap<String, Integer> levelChanged = new HashMap<>();
|
||||
HashMap<String, Float> experienceChanged = new HashMap<>();
|
||||
HashMap<String, Double> experienceChanged = new HashMap<>();
|
||||
|
||||
for (PrimarySkillType primarySkillType : PrimarySkillType.NON_CHILD_SKILLS) {
|
||||
if (!primarySkillType.getHardcoreStatLossEnabled()) {
|
||||
levelChanged.put(primarySkillType.toString(), 0);
|
||||
experienceChanged.put(primarySkillType.toString(), 0F);
|
||||
experienceChanged.put(primarySkillType.toString(), 0.0);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ public final class HardcoreManager {
|
||||
|
||||
if (playerSkillLevel <= 0 || playerSkillLevel <= levelThreshold) {
|
||||
levelChanged.put(primarySkillType.toString(), 0);
|
||||
experienceChanged.put(primarySkillType.toString(), 0F);
|
||||
experienceChanged.put(primarySkillType.toString(), 0.0);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ public final class HardcoreManager {
|
||||
int levelsLost = (int) statsLost;
|
||||
int xpLost = (int) Math.floor(playerSkillXpLevel * (statsLost - levelsLost));
|
||||
levelChanged.put(primarySkillType.toString(), levelsLost);
|
||||
experienceChanged.put(primarySkillType.toString(), (float) xpLost);
|
||||
experienceChanged.put(primarySkillType.toString(), (double) xpLost);
|
||||
|
||||
totalLevelsLost += levelsLost;
|
||||
}
|
||||
@ -71,12 +71,12 @@ public final class HardcoreManager {
|
||||
int totalLevelsStolen = 0;
|
||||
|
||||
HashMap<String, Integer> levelChanged = new HashMap<>();
|
||||
HashMap<String, Float> experienceChanged = new HashMap<>();
|
||||
HashMap<String, Double> experienceChanged = new HashMap<>();
|
||||
|
||||
for (PrimarySkillType primarySkillType : PrimarySkillType.NON_CHILD_SKILLS) {
|
||||
if (!primarySkillType.getHardcoreVampirismEnabled()) {
|
||||
levelChanged.put(primarySkillType.toString(), 0);
|
||||
experienceChanged.put(primarySkillType.toString(), 0F);
|
||||
experienceChanged.put(primarySkillType.toString(), 0.0);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -85,7 +85,7 @@ public final class HardcoreManager {
|
||||
|
||||
if (victimSkillLevel <= 0 || victimSkillLevel < killerSkillLevel / 2 || victimSkillLevel <= levelThreshold) {
|
||||
levelChanged.put(primarySkillType.toString(), 0);
|
||||
experienceChanged.put(primarySkillType.toString(), 0F);
|
||||
experienceChanged.put(primarySkillType.toString(), 0.0);
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -95,7 +95,7 @@ public final class HardcoreManager {
|
||||
int levelsStolen = (int) statsStolen;
|
||||
int xpStolen = (int) Math.floor(victimSkillXpLevel * (statsStolen - levelsStolen));
|
||||
levelChanged.put(primarySkillType.toString(), levelsStolen);
|
||||
experienceChanged.put(primarySkillType.toString(), (float) xpStolen);
|
||||
experienceChanged.put(primarySkillType.toString(), (double) xpStolen);
|
||||
|
||||
totalLevelsStolen += levelsStolen;
|
||||
}
|
||||
|
@ -19,9 +19,9 @@ public class ExperienceManager {
|
||||
private HashMap<String, Integer> woodcuttingFullyQualifiedBlockXpMap;
|
||||
private HashMap<String, Integer> excavationFullyQualifiedBlockXpMap;
|
||||
private HashMap<String, Integer> furnaceFullyQualifiedItemXpMap;
|
||||
private HashMap<EntityType, Float> tamingExperienceMap;
|
||||
private HashMap<EntityType, Float> combatXPMultiplierMap;
|
||||
private HashMap<SpecialXPKey, Float> specialCombatXPMultiplierMap; //Applies to "groups" of things for convenience
|
||||
private HashMap<EntityType, Double> tamingExperienceMap;
|
||||
private HashMap<EntityType, Double> combatXPMultiplierMap;
|
||||
private HashMap<SpecialXPKey, Double> specialCombatXPMultiplierMap; //Applies to "groups" of things for convenience
|
||||
|
||||
private double globalXpMult;
|
||||
|
||||
@ -57,7 +57,7 @@ public class ExperienceManager {
|
||||
*
|
||||
* @param platformSafeMap the platform safe map
|
||||
*/
|
||||
public void fillCombatXPMultiplierMap(HashMap<String, Float> platformSafeMap) {
|
||||
public void fillCombatXPMultiplierMap(HashMap<String, Double> platformSafeMap) {
|
||||
mcMMO.p.getLogger().info("Registering combat XP values...");
|
||||
for (String entityString : platformSafeMap.keySet()) {
|
||||
//Iterate over all EntityType(s)
|
||||
@ -83,7 +83,7 @@ public class ExperienceManager {
|
||||
*
|
||||
* @param map target map
|
||||
*/
|
||||
public void registerSpecialCombatXPMultiplierMap(HashMap<SpecialXPKey, Float> map) {
|
||||
public void registerSpecialCombatXPMultiplierMap(HashMap<SpecialXPKey, Double> map) {
|
||||
mcMMO.p.getLogger().info("Registering special combat XP values...");
|
||||
specialCombatXPMultiplierMap = map;
|
||||
}
|
||||
@ -122,7 +122,7 @@ public class ExperienceManager {
|
||||
if (entityType.toString().equalsIgnoreCase(s)) {
|
||||
//Match!
|
||||
matchFound = true;
|
||||
tamingExperienceMap.put(entityType, (float) userTamingConfigMap.get(s));
|
||||
tamingExperienceMap.put(entityType, (double) userTamingConfigMap.get(s));
|
||||
}
|
||||
}
|
||||
if (!matchFound) {
|
||||
@ -244,7 +244,7 @@ public class ExperienceManager {
|
||||
* @deprecated its faster to use direct calls to get XP, for example getMiningXP(Material material) instead of using this method
|
||||
*/
|
||||
@Deprecated
|
||||
public float getBlockBreakXpValue(PrimarySkillType primarySkillType, Material material) throws UndefinedSkillBehaviour {
|
||||
public double getBlockBreakXpValue(PrimarySkillType primarySkillType, Material material) throws UndefinedSkillBehaviour {
|
||||
switch (primarySkillType) {
|
||||
case MINING:
|
||||
return getMiningXp(material);
|
||||
@ -265,7 +265,7 @@ public class ExperienceManager {
|
||||
* @param entityType target entity
|
||||
* @return value of XP for this entity
|
||||
*/
|
||||
public float getTamingXp(EntityType entityType) {
|
||||
public double getTamingXp(EntityType entityType) {
|
||||
return tamingExperienceMap.get(entityType);
|
||||
}
|
||||
|
||||
@ -376,7 +376,7 @@ public class ExperienceManager {
|
||||
* @param specialXPKey target special XP group
|
||||
* @return XP multiplier for target special XP group
|
||||
*/
|
||||
public float getSpecialCombatXP(SpecialXPKey specialXPKey) {
|
||||
public double getSpecialCombatXP(SpecialXPKey specialXPKey) {
|
||||
return specialCombatXPMultiplierMap.get(specialXPKey);
|
||||
}
|
||||
|
||||
@ -386,7 +386,7 @@ public class ExperienceManager {
|
||||
* @param entityType target entity type
|
||||
* @return the combat XP multiplier for this entity
|
||||
*/
|
||||
public float getCombatXPMultiplier(EntityType entityType) {
|
||||
public double getCombatXPMultiplier(EntityType entityType) {
|
||||
return combatXPMultiplierMap.get(entityType);
|
||||
}
|
||||
|
||||
|
@ -92,11 +92,11 @@ public class PlayerLevelUtils {
|
||||
* @param skill target skill
|
||||
* @return the highest XP boost that this player qualifies for through perks or otherwise for target skill
|
||||
*/
|
||||
public float determineXpPerkValue(Player player, PrimarySkillType skill) {
|
||||
public Double determineXpPerkValue(Player player, PrimarySkillType skill) {
|
||||
HashSet<CustomXPPerk> enabledCustomXPPerks = findCustomXPPerks(player);
|
||||
|
||||
//A player can have multiple overlapping perks at a time, we need to compile a list and then sort it for the highest value
|
||||
HashSet<Float> xpPerkValues = new HashSet<>();
|
||||
HashSet<Double> xpPerkValues = new HashSet<>();
|
||||
|
||||
if (enabledCustomXPPerks.size() >= 1) {
|
||||
//Player has custom XP perks
|
||||
@ -110,17 +110,17 @@ public class PlayerLevelUtils {
|
||||
|
||||
//Disgusting legacy support start
|
||||
if (Permissions.quadrupleXp(player, skill)) {
|
||||
xpPerkValues.add(4f);
|
||||
xpPerkValues.add(4.0);
|
||||
} else if (Permissions.tripleXp(player, skill)) {
|
||||
xpPerkValues.add(3f);
|
||||
xpPerkValues.add(3.0);
|
||||
} else if (Permissions.doubleAndOneHalfXp(player, skill)) {
|
||||
xpPerkValues.add(2.5f);
|
||||
xpPerkValues.add(2.5);
|
||||
} else if (Permissions.doubleXp(player, skill)) {
|
||||
xpPerkValues.add(2.0f);
|
||||
xpPerkValues.add(2.0);
|
||||
} else if (Permissions.oneAndOneHalfXp(player, skill)) {
|
||||
xpPerkValues.add(1.5f);
|
||||
xpPerkValues.add(1.5);
|
||||
} else if (Permissions.oneAndOneTenthXp(player, skill)) {
|
||||
xpPerkValues.add(1.1f);
|
||||
xpPerkValues.add(1.1);
|
||||
}
|
||||
//Disgusting legacy support end
|
||||
|
||||
@ -128,7 +128,7 @@ public class PlayerLevelUtils {
|
||||
if (xpPerkValues.size() >= 1)
|
||||
return Collections.max(xpPerkValues);
|
||||
else
|
||||
return 1.0F;
|
||||
return 1.0;
|
||||
}
|
||||
|
||||
|
||||
|
@ -553,7 +553,7 @@ public final class CombatUtils {
|
||||
* @param primarySkillType The skill being used
|
||||
*/
|
||||
private static void startGainXp(McMMOPlayer mcMMOPlayer, LivingEntity target, PrimarySkillType primarySkillType, double multiplier) {
|
||||
float baseXPMultiplier = 0;
|
||||
double baseXPMultiplier = 0;
|
||||
XPGainReason xpGainReason;
|
||||
|
||||
if (target instanceof Player) {
|
||||
|
Loading…
Reference in New Issue
Block a user