mirror of
				https://github.com/mcMMO-Dev/mcMMO.git
				synced 2025-10-22 05:53:43 +02:00 
			
		
		
		
	Exploit Config Tweaks
This commit is contained in:
		| @@ -8,6 +8,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; | ||||
|  | ||||
|     @Setting(value = "Player-Fall-Location-Tracking", | ||||
|             comment = "The amount of locations to keep track of for player falls." + | ||||
| @@ -27,6 +28,14 @@ public class ConfigSectionExploitAcrobatics { | ||||
|                     "\nDefault value: "+PREVENT_ACROBATICS_ABUSE_DEFAULT) | ||||
|     private boolean preventAcrobaticsAbuse = PREVENT_ACROBATICS_ABUSE_DEFAULT; | ||||
|  | ||||
|     @Setting(value = "No-XP-After-Teleporting-Cooldown-In-Seconds", comment = "Prevents XP gains for Acrobatics for a set period of time after teleporting." + | ||||
|             "\nDefault value: "+TELEPORT_COOLDOWN_DEFAULT) | ||||
|     private int teleportCooldownSeconds = TELEPORT_COOLDOWN_DEFAULT; | ||||
|  | ||||
|     public int getTeleportCooldownSeconds() { | ||||
|         return teleportCooldownSeconds; | ||||
|     } | ||||
|  | ||||
|     public int getAcrobaticLocationLimit() { | ||||
|         return acrobaticLocationLimit; | ||||
|     } | ||||
|   | ||||
| @@ -26,7 +26,7 @@ public class ConfigSuperAbilities { | ||||
|     private ConfigSectionSuperAbilityCooldowns superAbilityCooldowns = new ConfigSectionSuperAbilityCooldowns(); | ||||
|  | ||||
|     @Setting(value = "Super-Ability-Max-Length", | ||||
|             comment = "The maximum amount of time a player can use a super ability." + | ||||
|             comment = "The maximum amount of time in seconds that a super ability can last." + | ||||
|             "\nMost super abilities get longer as a player grows in skill.") | ||||
|     private ConfigSectionSuperAbilityMaxLength superAbilityMaxLength = new ConfigSectionSuperAbilityMaxLength(); | ||||
|  | ||||
|   | ||||
| @@ -92,7 +92,7 @@ public class McMMOPlayer { | ||||
|  | ||||
|     private int recentlyHurt; | ||||
|     private int respawnATS; | ||||
|     private int teleportATS; | ||||
|     private long teleportATS; | ||||
|     private long databaseATS; | ||||
|     //private int chimeraWingLastUse; | ||||
|     private Location teleportCommence; | ||||
| @@ -388,12 +388,12 @@ public class McMMOPlayer { | ||||
|         respawnATS = (int) (System.currentTimeMillis() / Misc.TIME_CONVERSION_FACTOR); | ||||
|     } | ||||
|  | ||||
|     public int getTeleportATS() { | ||||
|     public long getTeleportATS() { | ||||
|         return teleportATS; | ||||
|     } | ||||
|  | ||||
|     public void actualizeTeleportATS() { | ||||
|         teleportATS = (int) (System.currentTimeMillis() / Misc.TIME_CONVERSION_FACTOR); | ||||
|         teleportATS = System.currentTimeMillis() + (mcMMO.getConfigManager().getConfigExploitPrevention().getConfigSectionExploitAcrobatics().getTeleportCooldownSeconds() * 1000); | ||||
|     } | ||||
|  | ||||
|     public long getDatabaseATS() { | ||||
|   | ||||
| @@ -285,6 +285,10 @@ public class Roll extends AcrobaticsSubSkill { | ||||
|             return true; | ||||
|         } | ||||
|  | ||||
|         //Teleport CD | ||||
|         if(System.currentTimeMillis() < UserManager.getPlayer(player).getTeleportATS()) | ||||
|             return true; | ||||
|  | ||||
|         if(fallLocationMap.get(player) == null) | ||||
|             fallLocationMap.put(player, new LimitedSizeList(mcMMO.getConfigManager().getConfigExploitPrevention().getConfigSectionExploitAcrobatics().getAcrobaticLocationLimit())); | ||||
|  | ||||
|   | ||||
| @@ -77,11 +77,12 @@ public class PlayerListener implements Listener { | ||||
|                 return; | ||||
|         } | ||||
|  | ||||
|         if (!UserManager.hasPlayerDataKey(player) || MainConfig.getInstance().getXPAfterTeleportCooldown() <= 0 || event.getFrom().equals(event.getTo())) { | ||||
|         if (!UserManager.hasPlayerDataKey(player) || event.getFrom().equals(event.getTo())) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         UserManager.getPlayer(player).actualizeTeleportATS(); | ||||
|         if(mcMMO.getConfigManager().getConfigExploitPrevention().getConfigSectionExploitAcrobatics().isPreventAcrobaticsAbuse()) | ||||
|             UserManager.getPlayer(player).actualizeTeleportATS(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -78,7 +78,8 @@ public class AcrobaticsManager extends SkillManager { | ||||
|             //Check respawn to prevent abuse | ||||
|             if(!mcMMO.getConfigManager().getConfigExploitPrevention().getConfigSectionExploitAcrobatics().isPreventAcrobaticsAbuse()) | ||||
|                 applyXpGain((float) (damage * Acrobatics.dodgeXpModifier), XPGainReason.PVP); | ||||
|             else if (SkillUtils.cooldownExpired(mcMMOPlayer.getRespawnATS(), Misc.PLAYER_RESPAWN_COOLDOWN_SECONDS)) { | ||||
|             else if (SkillUtils.cooldownExpired(mcMMOPlayer.getRespawnATS(), Misc.PLAYER_RESPAWN_COOLDOWN_SECONDS) | ||||
|                     && mcMMOPlayer.getTeleportATS() < System.currentTimeMillis()) { | ||||
|                 applyXpGain((float) (damage * Acrobatics.dodgeXpModifier), XPGainReason.PVP); | ||||
|             } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 nossr50
					nossr50