From 8b8e5c2267adc79bfa087379163f82bc597da018 Mon Sep 17 00:00:00 2001 From: Evenprime Date: Tue, 29 Mar 2011 13:32:05 +0200 Subject: [PATCH] Preparations for new Bukkit version --- plugin.yml | 2 +- .../bukkit/nocheat/NoCheatConfiguration.java | 6 ++--- .../bukkit/nocheat/NoCheatPlugin.java | 2 +- .../bukkit/nocheat/checks/MovingCheck.java | 23 ++++++++++--------- .../bukkit/nocheat/checks/SpeedhackCheck.java | 4 ++-- .../listeners/BedteleportListener.java | 4 ++-- .../nocheat/listeners/MovingMonitor.java | 4 ++-- 7 files changed, 23 insertions(+), 22 deletions(-) diff --git a/plugin.yml b/plugin.yml index 12ae7cdd..f4132e0d 100644 --- a/plugin.yml +++ b/plugin.yml @@ -3,7 +3,7 @@ name: NoCheatPlugin author: Evenprime main: cc.co.evenprime.bukkit.nocheat.NoCheatPlugin -version: 0.7.6 +version: 0.7.7a commands: nocheat: diff --git a/src/cc/co/evenprime/bukkit/nocheat/NoCheatConfiguration.java b/src/cc/co/evenprime/bukkit/nocheat/NoCheatConfiguration.java index 661b6727..546baa39 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/NoCheatConfiguration.java +++ b/src/cc/co/evenprime/bukkit/nocheat/NoCheatConfiguration.java @@ -37,8 +37,8 @@ public class NoCheatConfiguration { public NoCheatConfiguration(File configurationFile, NoCheatPlugin plugin) { this.plugin = plugin; - - this.config(configurationFile); + + config(configurationFile); } /** @@ -46,7 +46,7 @@ public class NoCheatConfiguration { * @param configurationFile */ public void config(File configurationFile) { - + if(!configurationFile.exists()) { createStandardConfigFile(configurationFile); } diff --git a/src/cc/co/evenprime/bukkit/nocheat/NoCheatPlugin.java b/src/cc/co/evenprime/bukkit/nocheat/NoCheatPlugin.java index d81f9f9e..a09d380a 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/NoCheatPlugin.java +++ b/src/cc/co/evenprime/bukkit/nocheat/NoCheatPlugin.java @@ -157,7 +157,7 @@ public class NoCheatPlugin extends JavaPlugin { pm.registerEvent(Event.Type.PLAYER_MOVE, new SpeedhackListener(speedhackCheck), Priority.High, this); // Register listeners for airbuild check - pm.registerEvent(Event.Type.BLOCK_PLACED, new AirbuildListener(airbuildCheck), Priority.Low, this); + pm.registerEvent(Event.Type.BLOCK_PLACE, new AirbuildListener(airbuildCheck), Priority.Low, this); // Register listeners for bedteleport check pm.registerEvent(Event.Type.PLAYER_TELEPORT, new BedteleportListener(bedteleportCheck), Priority.Lowest, this); diff --git a/src/cc/co/evenprime/bukkit/nocheat/checks/MovingCheck.java b/src/cc/co/evenprime/bukkit/nocheat/checks/MovingCheck.java index 638701eb..edb162f0 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/checks/MovingCheck.java +++ b/src/cc/co/evenprime/bukkit/nocheat/checks/MovingCheck.java @@ -32,7 +32,7 @@ public class MovingCheck extends Check { private double stepHeight = 0.501D; // Limits - public final double moveLimits[] = { 0.1D, 2.0D, 5.0D }; + public final double moveLimits[] = { 0.0D, 0.5D, 2.0D }; public final double heightLimits[] = { 0.0D, 0.5D, 2.0D }; @@ -201,13 +201,14 @@ public class MovingCheck extends Check { // First check the distance the player has moved horizontally // TODO: Make this check much more precise - double xDistance = Math.abs(from.getX() - to.getX()); - double zDistance = Math.abs(from.getZ() - to.getZ()); - double combined = xDistance * xDistance + zDistance * zDistance; + double xDistance = from.getX()-to.getX(); + double zDistance = from.getZ()-to.getZ(); + double combined = Math.sqrt((xDistance*xDistance + zDistance*zDistance)) - 0.6D; + System.out.println(combined); // If the target is a bed and distance not too big, allow it - if(to.getWorld().getBlockTypeIdAt(to) == Material.BED_BLOCK.getId() && xDistance < 5.0D && zDistance < 5.0D) { - return; // players are allowed to "teleport" into a bed over short distances + if(to.getWorld().getBlockTypeIdAt(to) == Material.BED_BLOCK.getId() && xDistance < 8.0D && zDistance < 8.0D) { + return; // players are allowed to "teleport" into a bed over "short" distances } int vl = -1; @@ -231,8 +232,8 @@ public class MovingCheck extends Check { // pre-calculate boundary values that are needed multiple times in the following checks // the array each contains [lowerX, higherX, Y, lowerZ, higherZ] - int fromValues[] = {lowerBorder(from.getX()), upperBorder(from.getX()), from.getBlockY(), lowerBorder(from.getZ()),upperBorder(from.getZ()) }; - int toValues[] = {lowerBorder(to.getX()), upperBorder(to.getX()), to.getBlockY(), lowerBorder(to.getZ()), upperBorder(to.getZ()) }; + int fromValues[] = {lowerBorder(from.getX()), upperBorder(from.getX()), (int)Math.floor(from.getY()+0.5D), lowerBorder(from.getZ()),upperBorder(from.getZ()) }; + int toValues[] = {lowerBorder(to.getX()), upperBorder(to.getX()), (int)Math.floor(to.getY()+0.5D), lowerBorder(to.getZ()), upperBorder(to.getZ()) }; // compare locations to the world to guess if the player is standing on the ground, a half-block or next to a ladder boolean onGroundFrom = playerIsOnGround(from.getWorld(), fromValues, from); @@ -250,7 +251,7 @@ public class MovingCheck extends Check { // Walk if(onGroundFrom && onGroundTo) { - double limit = stepHeight; + double limit = jumpHeight; double distance = to.getY() - from.getY(); vl = max(vl, heightLimitCheck(limit, distance)); @@ -459,13 +460,13 @@ public class MovingCheck extends Check { // Lets try it that way. Maybe now people don't "disappear" any longer event.setFrom(l.clone()); event.setTo(l.clone()); - event.getPlayer().teleportTo(l.clone()); + event.getPlayer().teleport(l.clone()); event.setCancelled(true); } else { // Lets try it that way. Maybe now people don't "disappear" any longer event.setTo(event.getFrom().clone()); - event.getPlayer().teleportTo(event.getFrom().clone()); + event.getPlayer().teleport(event.getFrom().clone()); event.setCancelled(true); } } diff --git a/src/cc/co/evenprime/bukkit/nocheat/checks/SpeedhackCheck.java b/src/cc/co/evenprime/bukkit/nocheat/checks/SpeedhackCheck.java index d069341c..e6b04185 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/checks/SpeedhackCheck.java +++ b/src/cc/co/evenprime/bukkit/nocheat/checks/SpeedhackCheck.java @@ -113,13 +113,13 @@ public class SpeedhackCheck extends Check { event.setFrom(l); event.setTo(l); event.setCancelled(true); - event.getPlayer().teleportTo(l); + event.getPlayer().teleport(l); } else { event.setFrom(event.getFrom()); event.setTo(event.getFrom().clone()); event.setCancelled(true); - event.getPlayer().teleportTo(event.getFrom()); + event.getPlayer().teleport(event.getFrom()); } } diff --git a/src/cc/co/evenprime/bukkit/nocheat/listeners/BedteleportListener.java b/src/cc/co/evenprime/bukkit/nocheat/listeners/BedteleportListener.java index c2e73dfd..dd92a839 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/listeners/BedteleportListener.java +++ b/src/cc/co/evenprime/bukkit/nocheat/listeners/BedteleportListener.java @@ -1,7 +1,7 @@ package cc.co.evenprime.bukkit.nocheat.listeners; import org.bukkit.event.player.PlayerListener; -import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerTeleportEvent; import cc.co.evenprime.bukkit.nocheat.checks.BedteleportCheck; @@ -14,7 +14,7 @@ public class BedteleportListener extends PlayerListener { } @Override - public void onPlayerTeleport(PlayerMoveEvent event) { + public void onPlayerTeleport(PlayerTeleportEvent event) { if(!event.isCancelled() && check.isActive()) { check.check(event); diff --git a/src/cc/co/evenprime/bukkit/nocheat/listeners/MovingMonitor.java b/src/cc/co/evenprime/bukkit/nocheat/listeners/MovingMonitor.java index 34475c5c..7b9fef29 100644 --- a/src/cc/co/evenprime/bukkit/nocheat/listeners/MovingMonitor.java +++ b/src/cc/co/evenprime/bukkit/nocheat/listeners/MovingMonitor.java @@ -1,7 +1,7 @@ package cc.co.evenprime.bukkit.nocheat.listeners; import org.bukkit.event.player.PlayerListener; -import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.event.player.PlayerTeleportEvent; import cc.co.evenprime.bukkit.nocheat.checks.MovingCheck; @@ -14,7 +14,7 @@ public class MovingMonitor extends PlayerListener { } @Override - public void onPlayerTeleport(PlayerMoveEvent event) { + public void onPlayerTeleport(PlayerTeleportEvent event) { check.teleported(event); }