Make ignoring creative and allowFlight configurable for creativefly

check.
This commit is contained in:
asofold 2012-09-22 00:08:57 +02:00
parent dc18dded88
commit 9b1d2c617a
4 changed files with 15 additions and 3 deletions

View File

@ -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);

View File

@ -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)) {

View File

@ -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";

View File

@ -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);