From 9b1d2c617ac37ff851cdeea7096a0b703deccb18 Mon Sep 17 00:00:00 2001 From: asofold Date: Sat, 22 Sep 2012 00:08:57 +0200 Subject: [PATCH] Make ignoring creative and allowFlight configurable for creativefly check. --- .../nocheatplus/checks/moving/MovingConfig.java | 9 ++++++++- .../nocheatplus/checks/moving/MovingListener.java | 5 +++-- src/fr/neatmonster/nocheatplus/config/ConfPaths.java | 2 ++ src/fr/neatmonster/nocheatplus/config/DefaultConfig.java | 2 ++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/fr/neatmonster/nocheatplus/checks/moving/MovingConfig.java b/src/fr/neatmonster/nocheatplus/checks/moving/MovingConfig.java index d5a0e1cd..64dc41c7 100644 --- a/src/fr/neatmonster/nocheatplus/checks/moving/MovingConfig.java +++ b/src/fr/neatmonster/nocheatplus/checks/moving/MovingConfig.java @@ -62,6 +62,10 @@ public class MovingConfig extends ACheckConfig { return worldsMap.get(player.getWorld().getName()); } + + public final boolean ignoreCreative; + public final boolean ignoreAllowFlight; + public final boolean creativeFlyCheck; public final int creativeFlyHorizontalSpeed; public final int creativeFlyMaxHeight; @@ -90,7 +94,6 @@ public class MovingConfig extends ACheckConfig { public final double noFallyOnGround; public final double yOnGround; public final double yStep; - /** * Instantiates a new moving configuration. @@ -99,6 +102,10 @@ public class MovingConfig extends ACheckConfig { * the data */ public MovingConfig(final ConfigFile data) { + + ignoreCreative = data.getBoolean(ConfPaths.MOVING_CREATIVEFLY_IGNORECREATIVE); + ignoreAllowFlight = data.getBoolean(ConfPaths.MOVING_CREATIVEFLY_IGNOREALLOWFLIGHT); + creativeFlyCheck = data.getBoolean(ConfPaths.MOVING_CREATIVEFLY_CHECK); creativeFlyHorizontalSpeed = data.getInt(ConfPaths.MOVING_CREATIVEFLY_HORIZONTALSPEED); creativeFlyMaxHeight = data.getInt(ConfPaths.MOVING_CREATIVEFLY_MAXHEIGHT); diff --git a/src/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java b/src/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java index 56304e3a..a4dbee4d 100644 --- a/src/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java +++ b/src/fr/neatmonster/nocheatplus/checks/moving/MovingListener.java @@ -342,7 +342,7 @@ public class MovingListener implements Listener { // Counter has run out, now reduce the vertical freedom over time. data.verticalFreedom *= 0.93D; - final double yOnGround = MovingConfig.getConfig(player).yOnGround; + final double yOnGround = cc.yOnGround; data.from.set(from, player, yOnGround); if (data.from.isOnGround()) data.ground = data.from.getLocation(); @@ -350,7 +350,8 @@ public class MovingListener implements Listener { Location newTo = null; - if ((player.getGameMode() == GameMode.CREATIVE || player.getAllowFlight()) && creativeFly.isEnabled(player)) + if ((!cc.ignoreCreative && player.getGameMode() == GameMode.CREATIVE || !cc.ignoreAllowFlight && player.getAllowFlight()) + && creativeFly.isEnabled(player)) // If the player is handled by the creative fly check, execute it. newTo = creativeFly.check(player, data, cc); else if (survivalFly.isEnabled(player)) { diff --git a/src/fr/neatmonster/nocheatplus/config/ConfPaths.java b/src/fr/neatmonster/nocheatplus/config/ConfPaths.java index e8f672a0..77be3edf 100644 --- a/src/fr/neatmonster/nocheatplus/config/ConfPaths.java +++ b/src/fr/neatmonster/nocheatplus/config/ConfPaths.java @@ -429,6 +429,8 @@ public abstract class ConfPaths { private static final String MOVING_CREATIVEFLY = MOVING + "creativefly."; public static final String MOVING_CREATIVEFLY_CHECK = MOVING_CREATIVEFLY + "active"; + public static final String MOVING_CREATIVEFLY_IGNORECREATIVE = MOVING_CREATIVEFLY + "ignorecreative"; + public static final String MOVING_CREATIVEFLY_IGNOREALLOWFLIGHT = MOVING_CREATIVEFLY + "ignoreallowflight"; public static final String MOVING_CREATIVEFLY_HORIZONTALSPEED = MOVING_CREATIVEFLY + "horizontalspeed"; public static final String MOVING_CREATIVEFLY_MAXHEIGHT = MOVING_CREATIVEFLY + "maxheight"; public static final String MOVING_CREATIVEFLY_VERTICALSPEED = MOVING_CREATIVEFLY + "verticalspeed"; diff --git a/src/fr/neatmonster/nocheatplus/config/DefaultConfig.java b/src/fr/neatmonster/nocheatplus/config/DefaultConfig.java index 21b8b855..18ec7aee 100644 --- a/src/fr/neatmonster/nocheatplus/config/DefaultConfig.java +++ b/src/fr/neatmonster/nocheatplus/config/DefaultConfig.java @@ -321,6 +321,8 @@ public class DefaultConfig extends ConfigFile { * "8",P" */ set(ConfPaths.MOVING_CREATIVEFLY_CHECK, true); + set(ConfPaths.MOVING_CREATIVEFLY_IGNOREALLOWFLIGHT, false); + set(ConfPaths.MOVING_CREATIVEFLY_IGNORECREATIVE, false); set(ConfPaths.MOVING_CREATIVEFLY_HORIZONTALSPEED, 100); set(ConfPaths.MOVING_CREATIVEFLY_MAXHEIGHT, 128); set(ConfPaths.MOVING_CREATIVEFLY_VERTICALSPEED, 100);