From 1e29c032510786b4e9f342b3777461e75b74c4b3 Mon Sep 17 00:00:00 2001 From: asofold Date: Sat, 26 Jan 2013 06:56:23 +0100 Subject: [PATCH] Re-order methods. --- .../checks/moving/MovingListener.java | 139 ++++++++++-------- 1 file changed, 75 insertions(+), 64 deletions(-) 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 0762cc54..88589b09 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 @@ -84,6 +84,11 @@ import fr.neatmonster.nocheatplus.utilities.StringUtil; */ public class MovingListener extends CheckListener implements TickListener, IRemoveData, IHaveCheckType{ + /** + * Coupling from and to PlayerLocation objects with a block cache for easy storage and reuse. + * @author mc_dev + * + */ private static final class MoveInfo{ public final BlockCache cache; public final PlayerLocation from; @@ -117,6 +122,76 @@ public class MovingListener extends CheckListener implements TickListener, IRemo cache.cleanup(); } } + + /** + * Determine "some jump amplifier": 1 is jump boost, 2 is jump boost II.
+ * NOTE: This is not the original amplifier value (use mcAccess for that). + * @param mcPlayer + * @return + */ + public static final double getJumpAmplifier(final Player player) { + final double amplifier = NoCheatPlus.getMCAccess().getJumpAmplifier(player); + if (amplifier == Double.MIN_VALUE) return 0D; + else return 1D + amplifier; + } + + /** + * Heavier check, but convenient for seldom events (not for use in the player-move check). + * @param player + * @param data + * @param cc + * @return + */ + public static final boolean shouldCheckSurvivalFly(final Player player, final MovingData data, final MovingConfig cc){ + if (player.hasPermission(Permissions.MOVING_CREATIVEFLY)) return false; + else if (!cc.survivalFlyCheck || NCPExemptionManager.isExempted(player, CheckType.MOVING_SURVIVALFLY) || player.hasPermission(Permissions.MOVING_SURVIVALFLY)) return false; + else if ((cc.ignoreCreative || player.getGameMode() != GameMode.CREATIVE) && (cc.ignoreAllowFlight || !player.getAllowFlight())){ + return true; + } + else return false; + } + + /** + * Handle an illegal move by a player, attempt to restore a valid location. + * @param event + * @param player + * @param data + */ + public static void handleIllegalMove(final PlayerMoveEvent event, final Player player, final MovingData data) + { + // This might get extended to a check-like thing. + boolean restored = false; + final PlayerLocation pLoc = new PlayerLocation(NoCheatPlus.getMCAccess(), null); + // (Mind that we don't set the block cache here). + final Location loc = player.getLocation(); + if (!restored && data.hasSetBack()) { + final Location setBack = data.getSetBack(loc); + pLoc.set(setBack, player); + if (!pLoc.isIllegal()){ + event.setFrom(setBack); + event.setTo(setBack); + restored = true; + } + else data.resetSetBack(); + } + if (!restored){ + pLoc.set(loc, player); + if (!pLoc.isIllegal()) { + event.setFrom(loc); + event.setTo(loc); + restored = true; + } + } + pLoc.cleanup(); + if (!restored){ + // TODO: correct the location ? + NoCheatPlus.denyLogin(player.getName(), 24L * 60L * 60L * 1000L); + LogUtil.logSevere("[NCP] could not restore location for " + player.getName() + " deny login for 24 hours"); + } + // TODO: reset the bounding box of the player ? + CheckUtils.onIllegalMove(player); + } + /** The instance of NoCheatPlus. */ private final NoCheatPlus plugin = (NoCheatPlus) Bukkit.getPluginManager().getPlugin( @@ -541,42 +616,6 @@ public class MovingListener extends CheckListener implements TickListener, IRemo parkedInfo.add(moveInfo); } - - public static void handleIllegalMove(final PlayerMoveEvent event, final Player player, final MovingData data) - { - // This might get extended to a check-like thing. - boolean restored = false; - final PlayerLocation pLoc = new PlayerLocation(NoCheatPlus.getMCAccess(), null); - // (Mind that we don't set the block cache here). - final Location loc = player.getLocation(); - if (!restored && data.hasSetBack()) { - final Location setBack = data.getSetBack(loc); - pLoc.set(setBack, player); - if (!pLoc.isIllegal()){ - event.setFrom(setBack); - event.setTo(setBack); - restored = true; - } - else data.resetSetBack(); - } - if (!restored){ - pLoc.set(loc, player); - if (!pLoc.isIllegal()) { - event.setFrom(loc); - event.setTo(loc); - restored = true; - } - } - pLoc.cleanup(); - if (!restored){ - // TODO: correct the location ? - NoCheatPlus.denyLogin(player.getName(), 24L * 60L * 60L * 1000L); - LogUtil.logSevere("[NCP] could not restore location for " + player.getName() + " deny login for 24 hours"); - } - // TODO: reset the bounding box of the player ? - CheckUtils.onIllegalMove(player); - } - // /** // * A workaround for cancelled PlayerMoveEvents. // * @@ -1008,34 +1047,6 @@ public class MovingListener extends CheckListener implements TickListener, IRemo public void onPlayerKick(final PlayerKickEvent event){ onLeave(event.getPlayer()); } - - /** - * Determine "some jump amplifier": 1 is jump boost, 2 is jump boost II.
- * NOTE: This is not the original amplifier value (use mcAccess for that). - * @param mcPlayer - * @return - */ - public static final double getJumpAmplifier(final Player player) { - final double amplifier = NoCheatPlus.getMCAccess().getJumpAmplifier(player); - if (amplifier == Double.MIN_VALUE) return 0D; - else return 1D + amplifier; - } - - /** - * Heavier check, but convenient for seldom events (not for use in the player-move check). - * @param player - * @param data - * @param cc - * @return - */ - public static final boolean shouldCheckSurvivalFly(final Player player, final MovingData data, final MovingConfig cc){ - if (player.hasPermission(Permissions.MOVING_CREATIVEFLY)) return false; - else if (!cc.survivalFlyCheck || NCPExemptionManager.isExempted(player, CheckType.MOVING_SURVIVALFLY) || player.hasPermission(Permissions.MOVING_SURVIVALFLY)) return false; - else if ((cc.ignoreCreative || player.getGameMode() != GameMode.CREATIVE) && (cc.ignoreAllowFlight || !player.getAllowFlight())){ - return true; - } - else return false; - } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onPlayerToggleSneak(final PlayerToggleSneakEvent event){