spigot/CraftBukkit-Patches/0024-Don-t-Special-Case-X-Move-Value.patch
2023-09-22 02:40:00 +10:00

56 lines
2.8 KiB
Diff

From a179f6315b3716b262c73f07ae7ded34acc3d3aa Mon Sep 17 00:00:00 2001
From: md_5 <md_5@live.com.au>
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 23a15db7e1..cb346fff85 100644
--- a/src/main/java/net/minecraft/server/network/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/network/PlayerConnection.java
@@ -316,6 +316,7 @@ public class PlayerConnection extends ServerCommonPacketListenerImpl implements
private float lastPitch = Float.MAX_VALUE;
private float lastYaw = Float.MAX_VALUE;
private boolean justTeleported = false;
+ private boolean hasMoved; // Spigot
// CraftBukkit end
@Override
@@ -541,6 +542,7 @@ public class PlayerConnection extends ServerCommonPacketListenerImpl implements
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
@@ -555,6 +557,17 @@ public class PlayerConnection extends ServerCommonPacketListenerImpl implements
// 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.
@@ -580,7 +593,7 @@ public class PlayerConnection extends ServerCommonPacketListenerImpl implements
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.42.0