mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-25 06:36:45 +01:00
Exploit Config Tweaks
This commit is contained in:
parent
956b01a28e
commit
ac04ca5c27
@ -10,6 +10,9 @@ Key:
|
||||
Version 2.2.0
|
||||
mcMMO's config system has been rewritten
|
||||
Parties no longer have a cap, you can level them forever for bragging rights
|
||||
Optimizations were made for many anti-exploit behaviours
|
||||
Acrobatic's Dodge will no longer reward XP for a few seconds after a TP
|
||||
Roll will not give XP for a few seconds after a TP
|
||||
You can now disable the party system completely
|
||||
Many config files are now generated on demand instead of being copied from within the JAR
|
||||
All config nodes that used to be styled with CamelCase or otherwise now use hyphens (-) as spaces for readability and consistency
|
||||
@ -131,7 +134,7 @@ Version 2.2.0
|
||||
Update_Check, Prefer_Beta
|
||||
|
||||
Removed the following config settings for being unwanted
|
||||
Config_Update_Overwrite
|
||||
Config_Update_Overwrite, Tool_Mods_Enabled, Armor_Mods_Enabled, Block_Mods_Enabled, Entity_Mods_Enabled
|
||||
|
||||
API Changes
|
||||
Added API method to check if player parties are size capped
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user