From 579109b2f50cf493e2b63f910d04fe1435cbd842 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Thu, 21 Mar 2019 16:21:23 -0700 Subject: [PATCH] Configurable XP cooldowns for Roll --- .../antiexploit/ConfigSectionExploitAcrobatics.java | 10 ++++++++++ .../nossr50/skills/acrobatics/AcrobaticsManager.java | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/gmail/nossr50/config/hocon/antiexploit/ConfigSectionExploitAcrobatics.java b/src/main/java/com/gmail/nossr50/config/hocon/antiexploit/ConfigSectionExploitAcrobatics.java index ccd243bec..626968597 100644 --- a/src/main/java/com/gmail/nossr50/config/hocon/antiexploit/ConfigSectionExploitAcrobatics.java +++ b/src/main/java/com/gmail/nossr50/config/hocon/antiexploit/ConfigSectionExploitAcrobatics.java @@ -9,6 +9,7 @@ public class ConfigSectionExploitAcrobatics { public static final int ACROBATIC_LOCATION_LIMIT_DEFAULT = 50; public static final boolean PREVENT_ACROBATICS_ABUSE_DEFAULT = true; public static final int TELEPORT_COOLDOWN_DEFAULT = 30; + public static final int ROLL_XP_GAIN_CD_DEFAULT = 60; @Setting(value = "Player-Fall-Location-Tracking", comment = "The amount of locations to keep track of for player falls." + @@ -32,6 +33,15 @@ public class ConfigSectionExploitAcrobatics { "\nDefault value: "+TELEPORT_COOLDOWN_DEFAULT) private int teleportCooldownSeconds = TELEPORT_COOLDOWN_DEFAULT; + @Setting(value = "Fall-Damage-XP-Gain-Cooldown-In-Seconds", comment = "Prevent players from gaining XP from fall damage if they had gained XP recently." + + "\nWhen players take fall damage again within this cooldown period the length of the cooldown is increased to discourage automated Roll XP farming." + + "\nDefault value: "+ROLL_XP_GAIN_CD_DEFAULT) + private int rollXPGainCooldownSeconds = ROLL_XP_GAIN_CD_DEFAULT; + + public int getRollXPGainCooldownSeconds() { + return rollXPGainCooldownSeconds; + } + public int getTeleportCooldownSeconds() { return teleportCooldownSeconds; } diff --git a/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java b/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java index 0902ede1d..dd4647a86 100644 --- a/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java +++ b/src/main/java/com/gmail/nossr50/skills/acrobatics/AcrobaticsManager.java @@ -23,10 +23,11 @@ public class AcrobaticsManager extends SkillManager { public AcrobaticsManager(McMMOPlayer mcMMOPlayer) { super(mcMMOPlayer, PrimarySkillType.ACROBATICS); + rollXPInterval = (1000 * mcMMO.getConfigManager().getConfigExploitPrevention().getConfigSectionExploitAcrobatics().getRollXPGainCooldownSeconds()); } private long rollXPCooldown = 0; - private long rollXPInterval = (1000 * 60); //1 Minute + private long rollXPInterval; //1 Minute private long rollXPIntervalLengthen = (1000 * 10); //10 Seconds public boolean canGainRollXP()