From c5ec73b1f427ab0fb32e6ae90d6e61c426038032 Mon Sep 17 00:00:00 2001 From: Evenprime Date: Sat, 16 Jul 2011 15:10:48 +0200 Subject: [PATCH] Fixed compatibility with Superjump plugin (and reduced false positives in other cases) --- plugin.yml | 2 +- .../bukkit/nocheat/checks/FlyingCheck.java | 3 ++- .../bukkit/nocheat/checks/MovingCheck.java | 3 +-- .../bukkit/nocheat/checks/RunningCheck.java | 2 +- .../nocheat/listeners/MovingPlayerMonitor.java | 14 +++++++------- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/plugin.yml b/plugin.yml index a22eb03b..9ec8fea4 100644 --- a/plugin.yml +++ b/plugin.yml @@ -3,7 +3,7 @@ name: NoCheat author: Evenprime main: cc.co.evenprime.bukkit.nocheat.NoCheat -version: 1.09d +version: 1.09e softdepend: [ Permissions, CraftIRC ] diff --git a/src/cc/co/evenprime/bukkit/nocheat/checks/FlyingCheck.java b/src/cc/co/evenprime/bukkit/nocheat/checks/FlyingCheck.java index cfce6edc..8b9b10f0 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/checks/FlyingCheck.java +++ b/src/cc/co/evenprime/bukkit/nocheat/checks/FlyingCheck.java @@ -89,6 +89,7 @@ public class FlyingCheck { // The server sent the player a "velocity" packet a short time ago if(data.maxYVelocity > 0.0D) { + data.vertFreedomCounter = 30; // Be generous with the height limit for the client @@ -100,7 +101,7 @@ public class FlyingCheck { if(data.vertFreedomCounter > 0) { data.vertFreedomCounter--; } - + final double limit = data.vertFreedom; // If the event counter has been consumed, remove the vertical movement limit increase when landing the next time diff --git a/src/cc/co/evenprime/bukkit/nocheat/checks/MovingCheck.java b/src/cc/co/evenprime/bukkit/nocheat/checks/MovingCheck.java index abb0c130..78ad7f3f 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/checks/MovingCheck.java +++ b/src/cc/co/evenprime/bukkit/nocheat/checks/MovingCheck.java @@ -120,8 +120,7 @@ public class MovingCheck extends Check { result += Math.max(0D, runningCheck.check(from, to, !allowFakeSneak && player.isSneaking(), !allowFastSwim && (fromType & toType & MovingEventHelper.LIQUID) > 0, data)); } - - + /********* HANDLE/COMBINE THE RESULTS OF THE CHECKS ***********/ data.jumpPhase++; diff --git a/src/cc/co/evenprime/bukkit/nocheat/checks/RunningCheck.java b/src/cc/co/evenprime/bukkit/nocheat/checks/RunningCheck.java index 68b81b7c..c6f81a36 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/checks/RunningCheck.java +++ b/src/cc/co/evenprime/bukkit/nocheat/checks/RunningCheck.java @@ -34,6 +34,6 @@ public class RunningCheck { distanceAboveLimit = totalDistance - stepWidth; } - return distanceAboveLimit; + return distanceAboveLimit - data.horizFreedom; } } diff --git a/src/cc/co/evenprime/bukkit/nocheat/listeners/MovingPlayerMonitor.java b/src/cc/co/evenprime/bukkit/nocheat/listeners/MovingPlayerMonitor.java index 02d0ce24..721c163c 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/listeners/MovingPlayerMonitor.java +++ b/src/cc/co/evenprime/bukkit/nocheat/listeners/MovingPlayerMonitor.java @@ -22,7 +22,7 @@ public class MovingPlayerMonitor extends PlayerListener { public MovingPlayerMonitor(MovingCheck check) { this.check = check; } - + @Override public void onPlayerRespawn(PlayerRespawnEvent event) { MovingData data = MovingData.get(event.getPlayer()); @@ -35,12 +35,12 @@ public class MovingPlayerMonitor extends PlayerListener { public void onPlayerPortal(PlayerPortalEvent event) { check.teleported(event); } - + @Override public void onPlayerTeleport(PlayerTeleportEvent event) { check.teleported(event); } - + @Override public void onPlayerInteract(PlayerInteractEvent event) { @@ -49,17 +49,17 @@ public class MovingPlayerMonitor extends PlayerListener { @Override public void onPlayerMove(PlayerMoveEvent event) { + MovingData data = MovingData.get(event.getPlayer()); + + check.updateVelocity(event.getPlayer().getVelocity(), data); + if(!event.isCancelled()) { - MovingData data = MovingData.get(event.getPlayer()); - if( event.getPlayer().isInsideVehicle()) { data.setBackPoint = event.getTo(); } else { data.insideVehicle = false; } - - check.updateVelocity(event.getPlayer().getVelocity(), data); } } }