From c0bf49c7e4550bd5057d7e0668ed65edd18b48f0 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sun, 6 Oct 2013 17:36:28 +1100 Subject: [PATCH] Don't Special Case X Move Value diff --git a/src/main/java/net/minecraft/server/network/PlayerConnection.java b/src/main/java/net/minecraft/server/network/PlayerConnection.java index e4b863556..137ae32ab 100644 --- a/src/main/java/net/minecraft/server/network/PlayerConnection.java +++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java @@ -332,6 +332,7 @@ public class PlayerConnection implements ServerPlayerConnection, TickablePacketL private float lastPitch = Float.MAX_VALUE; private float lastYaw = Float.MAX_VALUE; private boolean justTeleported = false; + private boolean hasMoved; // Spigot public CraftPlayer getCraftPlayer() { return (this.player == null) ? null : (CraftPlayer) this.player.getBukkitEntity(); @@ -632,6 +633,7 @@ public class PlayerConnection implements ServerPlayerConnection, TickablePacketL flag2 = true; PlayerConnection.LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", new Object[]{entity.getName().getString(), this.player.getName().getString(), Math.sqrt(d10)}); } + Location curPos = this.getCraftPlayer().getLocation(); // Spigot entity.absMoveTo(d3, d4, d5, f, f1); player.absMoveTo(d3, d4, d5, this.player.getYRot(), this.player.getXRot()); // CraftBukkit @@ -646,6 +648,17 @@ public class PlayerConnection implements ServerPlayerConnection, TickablePacketL // CraftBukkit start - fire PlayerMoveEvent Player player = this.getCraftPlayer(); + // Spigot Start + if ( !hasMoved ) + { + lastPosX = curPos.getX(); + lastPosY = curPos.getY(); + lastPosZ = curPos.getZ(); + lastYaw = curPos.getYaw(); + lastPitch = curPos.getPitch(); + hasMoved = true; + } + // Spigot End Location from = new Location(player.getWorld(), lastPosX, lastPosY, lastPosZ, lastYaw, lastPitch); // Get the Players previous Event location. Location to = player.getLocation().clone(); // Start off the To location as the Players current location. @@ -671,7 +684,7 @@ public class PlayerConnection implements ServerPlayerConnection, TickablePacketL this.lastPitch = to.getPitch(); // Skip the first time we do this - if (from.getX() != Double.MAX_VALUE) { + if (true) { // Spigot - don't skip any move events Location oldTo = to.clone(); PlayerMoveEvent event = new PlayerMoveEvent(player, from, to); this.cserver.getPluginManager().callEvent(event); -- 2.40.1