From 748b71b3ccb242c762cb937e6943fe7ea3bdb917 Mon Sep 17 00:00:00 2001 From: Erik Broes Date: Thu, 24 Mar 2011 00:52:10 +0100 Subject: [PATCH] Fix accidental Double.MAX_VALUE coordinates in initial PlayerMoveEvent --- .../minecraft/server/NetServerHandler.java | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/main/java/net/minecraft/server/NetServerHandler.java b/src/main/java/net/minecraft/server/NetServerHandler.java index 1f4bff93c2..51d20f43a5 100644 --- a/src/main/java/net/minecraft/server/NetServerHandler.java +++ b/src/main/java/net/minecraft/server/NetServerHandler.java @@ -123,17 +123,20 @@ public class NetServerHandler extends NetHandler implements ICommandListener { float deltaAngle = Math.abs(this.lastYaw - this.e.yaw) + Math.abs(this.lastPitch - this.e.pitch); if (delta > 1f/256 || deltaAngle > 10f) { - PlayerMoveEvent event = new PlayerMoveEvent(Type.PLAYER_MOVE, player, from, to); - server.getPluginManager().callEvent(event); + // Skip the first time we do this + if (lastPosX != Double.MAX_VALUE) { + PlayerMoveEvent event = new PlayerMoveEvent(Type.PLAYER_MOVE, player, from, to); + server.getPluginManager().callEvent(event); + + from = event.getFrom(); + to = event.isCancelled() ? from : event.getTo(); - from = event.getFrom(); - to = event.isCancelled() ? from : event.getTo(); - - this.e.locX = to.getX(); - this.e.locY = to.getY(); - this.e.locZ = to.getZ(); - this.e.yaw = to.getYaw(); - this.e.pitch = to.getPitch(); + this.e.locX = to.getX(); + this.e.locY = to.getY(); + this.e.locZ = to.getZ(); + this.e.yaw = to.getYaw(); + this.e.pitch = to.getPitch(); + } this.lastPosX = this.e.locX; this.lastPosY = this.e.locY;