mirror of
https://github.com/NoCheatPlus/NoCheatPlus.git
synced 2024-10-03 00:47:25 +02:00
Remove the "bedstep" workaround in favor of a configurable step height.
This commit is contained in:
parent
c9df8238f7
commit
56d32c4f3e
@ -3,6 +3,7 @@ package fr.neatmonster.nocheatplus.checks.moving;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@ -133,7 +134,7 @@ public class MovingConfig extends ACheckConfig {
|
|||||||
public final boolean survivalFlyAccountingV;
|
public final boolean survivalFlyAccountingV;
|
||||||
public final boolean sfSetBackPolicyVoid;
|
public final boolean sfSetBackPolicyVoid;
|
||||||
public final boolean sfSetBackPolicyFallDamage;
|
public final boolean sfSetBackPolicyFallDamage;
|
||||||
public final boolean sfBedStep;
|
public final double sfStepHeight;
|
||||||
public final long survivalFlyVLFreeze;
|
public final long survivalFlyVLFreeze;
|
||||||
public final ActionList survivalFlyActions;
|
public final ActionList survivalFlyActions;
|
||||||
|
|
||||||
@ -232,11 +233,18 @@ public class MovingConfig extends ACheckConfig {
|
|||||||
survivalFlyAccountingV = config.getBoolean(ConfPaths.MOVING_SURVIVALFLY_EXTENDED_VACC);
|
survivalFlyAccountingV = config.getBoolean(ConfPaths.MOVING_SURVIVALFLY_EXTENDED_VACC);
|
||||||
sfSetBackPolicyFallDamage = config.getBoolean(ConfPaths.MOVING_SURVIVALFLY_SETBACKPOLICY_FALLDAMAGE);
|
sfSetBackPolicyFallDamage = config.getBoolean(ConfPaths.MOVING_SURVIVALFLY_SETBACKPOLICY_FALLDAMAGE);
|
||||||
sfSetBackPolicyVoid = config.getBoolean(ConfPaths.MOVING_SURVIVALFLY_SETBACKPOLICY_VOIDTOVOID);
|
sfSetBackPolicyVoid = config.getBoolean(ConfPaths.MOVING_SURVIVALFLY_SETBACKPOLICY_VOIDTOVOID);
|
||||||
AlmostBoolean bedStep = config.getAlmostBoolean(ConfPaths.MOVING_SURVIVALFLY_BEDSTEP, AlmostBoolean.MAYBE);
|
final double sfStepHeight = config.getDouble(ConfPaths.MOVING_SURVIVALFLY_STEPHEIGHT, Double.MAX_VALUE);
|
||||||
if (bedStep == AlmostBoolean.MAYBE) {
|
if (sfStepHeight == Double.MAX_VALUE) {
|
||||||
sfBedStep = ServerVersion.select("1.8", false, true, true, true);
|
final String ref;
|
||||||
|
if (Bukkit.getVersion().toLowerCase().indexOf("spigot") != -1) {
|
||||||
|
// Assume 1.8 clients being supported.
|
||||||
|
ref = "1.7.10";
|
||||||
|
} else {
|
||||||
|
ref = "1.8";
|
||||||
|
}
|
||||||
|
this.sfStepHeight = ServerVersion.select(ref, 0.5, 0.6, 0.6, 0.5).doubleValue();
|
||||||
} else {
|
} else {
|
||||||
sfBedStep = bedStep.decide();
|
this.sfStepHeight = sfStepHeight;
|
||||||
}
|
}
|
||||||
survivalFlyVLFreeze = config.getLong(ConfPaths.MOVING_SURVIVALFLY_VLFREEZE, 2000L);
|
survivalFlyVLFreeze = config.getLong(ConfPaths.MOVING_SURVIVALFLY_VLFREEZE, 2000L);
|
||||||
survivalFlyActions = config.getOptimizedActionList(ConfPaths.MOVING_SURVIVALFLY_ACTIONS, Permissions.MOVING_SURVIVALFLY);
|
survivalFlyActions = config.getOptimizedActionList(ConfPaths.MOVING_SURVIVALFLY_ACTIONS, Permissions.MOVING_SURVIVALFLY);
|
||||||
|
@ -6,7 +6,6 @@ import java.util.Locale;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||||
|
|
||||||
@ -392,19 +391,13 @@ public class SurvivalFly extends Check {
|
|||||||
// Simple-step blocker.
|
// Simple-step blocker.
|
||||||
// TODO: Complex step blocker: distance to set-back + low jump + accounting info
|
// TODO: Complex step blocker: distance to set-back + low jump + accounting info
|
||||||
if ((resetFrom || data.noFallAssumeGround) && resetTo && vDistanceAboveLimit <= 0D &&
|
if ((resetFrom || data.noFallAssumeGround) && resetTo && vDistanceAboveLimit <= 0D &&
|
||||||
yDistance > MovingUtil.estimateJumpLiftOff(player, data, 0.1)) {
|
yDistance > cc.sfStepHeight && yDistance > MovingUtil.estimateJumpLiftOff(player, data, 0.1)) {
|
||||||
boolean step = true;
|
boolean step = true;
|
||||||
// Exclude a lost-ground case.
|
// Exclude a lost-ground case.
|
||||||
if (data.noFallAssumeGround && data.sfLastYDist != Double.MAX_VALUE && data.sfLastYDist <= 0.0 && yDistance > 0.0 &&
|
if (data.noFallAssumeGround && data.sfLastYDist != Double.MAX_VALUE && data.sfLastYDist <= 0.0 && yDistance > 0.0 &&
|
||||||
yDistance + Math.abs(data.sfLastYDist) <= 2.0 * (MovingUtil.estimateJumpLiftOff(player, data, 0.1))) {
|
yDistance + Math.abs(data.sfLastYDist) <= 2.0 * (MovingUtil.estimateJumpLiftOff(player, data, 0.1))) {
|
||||||
step = false;
|
step = false;
|
||||||
}
|
}
|
||||||
// Exclude 1.8 beds.
|
|
||||||
// TODO: Add feature flag (bedstep) and check here.
|
|
||||||
// TODO: Quick check the distance and offset parameters (!).
|
|
||||||
if (yDistance <= 0.5625 && cc.sfBedStep && to.standsOnBlock(BlockProperties.getId(Material.BED_BLOCK))) {
|
|
||||||
step = false;
|
|
||||||
}
|
|
||||||
// Check bypass permission last.
|
// Check bypass permission last.
|
||||||
if (step && !player.hasPermission(Permissions.MOVING_SURVIVALFLY_STEP)) {
|
if (step && !player.hasPermission(Permissions.MOVING_SURVIVALFLY_STEP)) {
|
||||||
vDistanceAboveLimit = Math.max(vDistanceAboveLimit, Math.abs(from.isOnClimbable() ? yDistance : yDistance - MovingUtil.estimateJumpLiftOff(player, data, 0.1) )); // Could adjust if on ladders etc.
|
vDistanceAboveLimit = Math.max(vDistanceAboveLimit, Math.abs(from.isOnClimbable() ? yDistance : yDistance - MovingUtil.estimateJumpLiftOff(player, data, 0.1) )); // Could adjust if on ladders etc.
|
||||||
|
@ -566,7 +566,7 @@ public abstract class ConfPaths {
|
|||||||
private static final String MOVING_SURVIVALFLY_SETBACKPOLICY = MOVING_SURVIVALFLY + "setbackpolicy.";
|
private static final String MOVING_SURVIVALFLY_SETBACKPOLICY = MOVING_SURVIVALFLY + "setbackpolicy.";
|
||||||
public static final String MOVING_SURVIVALFLY_SETBACKPOLICY_FALLDAMAGE = MOVING_SURVIVALFLY_SETBACKPOLICY + "falldamage";
|
public static final String MOVING_SURVIVALFLY_SETBACKPOLICY_FALLDAMAGE = MOVING_SURVIVALFLY_SETBACKPOLICY + "falldamage";
|
||||||
public static final String MOVING_SURVIVALFLY_SETBACKPOLICY_VOIDTOVOID = MOVING_SURVIVALFLY_SETBACKPOLICY + "voidtovoid";
|
public static final String MOVING_SURVIVALFLY_SETBACKPOLICY_VOIDTOVOID = MOVING_SURVIVALFLY_SETBACKPOLICY + "voidtovoid";
|
||||||
public static final String MOVING_SURVIVALFLY_BEDSTEP = MOVING_SURVIVALFLY + "bedstep";
|
public static final String MOVING_SURVIVALFLY_STEPHEIGHT = MOVING_SURVIVALFLY + "stepheight";
|
||||||
public static final String MOVING_SURVIVALFLY_VLFREEZE = MOVING_SURVIVALFLY + "vlfreeze";
|
public static final String MOVING_SURVIVALFLY_VLFREEZE = MOVING_SURVIVALFLY + "vlfreeze";
|
||||||
public static final String MOVING_SURVIVALFLY_ACTIONS = MOVING_SURVIVALFLY + "actions";
|
public static final String MOVING_SURVIVALFLY_ACTIONS = MOVING_SURVIVALFLY + "actions";
|
||||||
|
|
||||||
@ -710,5 +710,7 @@ public abstract class ConfPaths {
|
|||||||
public static final String NET_FLYINGFREQUENCY_MAXPACKETS = "checks.net.flyingfrequency.maxpackets";
|
public static final String NET_FLYINGFREQUENCY_MAXPACKETS = "checks.net.flyingfrequency.maxpackets";
|
||||||
@Deprecated
|
@Deprecated
|
||||||
public static final String COMPATIBILITY_BUKKITONLY = "compatibility.bukkitapionly";
|
public static final String COMPATIBILITY_BUKKITONLY = "compatibility.bukkitapionly";
|
||||||
|
@Deprecated
|
||||||
|
public static final String MOVING_SURVIVALFLY_BEDSTEP ="checks.moving.survivalfly.bedstep";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -400,7 +400,7 @@ public class DefaultConfig extends ConfigFile {
|
|||||||
set(ConfPaths.MOVING_SURVIVALFLY_CHECK, true);
|
set(ConfPaths.MOVING_SURVIVALFLY_CHECK, true);
|
||||||
// set(ConfPaths.MOVING_SURVIVALFLY_EXTENDED_HACC, false);
|
// set(ConfPaths.MOVING_SURVIVALFLY_EXTENDED_HACC, false);
|
||||||
set(ConfPaths.MOVING_SURVIVALFLY_EXTENDED_VACC, true);
|
set(ConfPaths.MOVING_SURVIVALFLY_EXTENDED_VACC, true);
|
||||||
set(ConfPaths.MOVING_SURVIVALFLY_BEDSTEP, "default");
|
set(ConfPaths.MOVING_SURVIVALFLY_STEPHEIGHT, "default");
|
||||||
set(ConfPaths.MOVING_SURVIVALFLY_SETBACKPOLICY_FALLDAMAGE, true);
|
set(ConfPaths.MOVING_SURVIVALFLY_SETBACKPOLICY_FALLDAMAGE, true);
|
||||||
set(ConfPaths.MOVING_SURVIVALFLY_SETBACKPOLICY_VOIDTOVOID, true);
|
set(ConfPaths.MOVING_SURVIVALFLY_SETBACKPOLICY_VOIDTOVOID, true);
|
||||||
// The settings aren't enabled by default. Simply write them yourself in the configuration file.
|
// The settings aren't enabled by default. Simply write them yourself in the configuration file.
|
||||||
|
Loading…
Reference in New Issue
Block a user