diff --git a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingConfig.java b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingConfig.java index d58c910a..a500a305 100644 --- a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingConfig.java +++ b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingConfig.java @@ -80,6 +80,7 @@ public class MovingConfig extends ACheckConfig { public final boolean noFallCheck; public final boolean noFallDealDamage; + public final boolean noFallTpReset; public final ActionList noFallActions; public final boolean passableCheck; @@ -130,6 +131,7 @@ public class MovingConfig extends ACheckConfig { noFallCheck = data.getBoolean(ConfPaths.MOVING_NOFALL_CHECK); noFallDealDamage = data.getBoolean(ConfPaths.MOVING_NOFALL_DEALDAMAGE); + noFallTpReset = data.getBoolean(ConfPaths.MOVING_NOFALL_RESETONTP); noFallActions = data.getOptimizedActionList(ConfPaths.MOVING_NOFALL_ACTIONS, Permissions.MOVING_NOFALL); passableCheck = data.getBoolean(ConfPaths.MOVING_PASSABLE_CHECK); diff --git a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java index 09c4d325..52073268 100644 --- a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java +++ b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java @@ -731,10 +731,12 @@ public class MovingListener extends CheckListener{ data.resetPositions(to); data.setSetBack(to); // TODO: make this configurable. - if (fallDistance - player.getFallDistance() > 0.0){ - // Reset fall distance. - // TODO: This might lead to new compatibility trouble. - player.setFallDistance((float) fallDistance); + if (fallDistance > 1.0 && fallDistance - player.getFallDistance() > 0.0){ + // Reset fall distance if set so in the config. + if (!MovingConfig.getConfig(player).noFallTpReset){ + // (Set fall distance if set to not reset.) + player.setFallDistance((float) fallDistance); + } } } else{ diff --git a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java index daa9445e..ee5a91a2 100644 --- a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java +++ b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/config/ConfPaths.java @@ -475,6 +475,7 @@ public abstract class ConfPaths { private static final String MOVING_NOFALL = MOVING + "nofall."; public static final String MOVING_NOFALL_CHECK = MOVING_NOFALL + "active"; public static final String MOVING_NOFALL_DEALDAMAGE = MOVING_NOFALL + "dealdamage"; + public static final String MOVING_NOFALL_RESETONTP = MOVING_NOFALL + "resetonteleport"; public static final String MOVING_NOFALL_ACTIONS = MOVING_NOFALL + "actions"; public static final String MOVING_PASSABLE = MOVING + "passable."; diff --git a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/config/DefaultConfig.java b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/config/DefaultConfig.java index b34dd4f1..c73d8c3c 100644 --- a/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/config/DefaultConfig.java +++ b/NCPPlugin/src/main/java/fr/neatmonster/nocheatplus/config/DefaultConfig.java @@ -25,7 +25,7 @@ public class DefaultConfig extends ConfigFile { * NCP build needed for this config. * (Should only increment with changing or removing paths.) */ - public static final int buildNumber = 303; + public static final int buildNumber = 314; /** * Instantiates a new default configuration. @@ -368,6 +368,7 @@ public class DefaultConfig extends ConfigFile { set(ConfPaths.MOVING_NOFALL_CHECK, true); set(ConfPaths.MOVING_NOFALL_DEALDAMAGE, true); + set(ConfPaths.MOVING_NOFALL_RESETONTP, false); set(ConfPaths.MOVING_NOFALL_ACTIONS, "log:nofall:0:5:if cancel vl>30 log:nofall:0:5:icf cancel"); set(ConfPaths.MOVING_PASSABLE_CHECK, true);