From 557c26bec44d8eb2ae3fe8b2a19dc1e6366e5afa Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Sat, 22 Oct 2016 15:36:19 -0500
Subject: [PATCH] Revert CB's SPIGOT-1903 fix in favor of ours

Fixes GH-453
---
 .../0178-SPIGOT-1903-Use-alternate-fix.patch  | 52 +++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 Spigot-Server-Patches/0178-SPIGOT-1903-Use-alternate-fix.patch

diff --git a/Spigot-Server-Patches/0178-SPIGOT-1903-Use-alternate-fix.patch b/Spigot-Server-Patches/0178-SPIGOT-1903-Use-alternate-fix.patch
new file mode 100644
index 000000000..9d3769216
--- /dev/null
+++ b/Spigot-Server-Patches/0178-SPIGOT-1903-Use-alternate-fix.patch
@@ -0,0 +1,52 @@
+From 3f994a958bdda226403b9927b3f363e3373f8405 Mon Sep 17 00:00:00 2001
+From: Aikar <aikar@aikar.co>
+Date: Sat, 22 Oct 2016 15:32:31 -0500
+Subject: [PATCH] SPIGOT-1903: Use alternate fix
+
+Prevents rubber banding and moved too quickly issues
+
+Removes Spigot's fix in favor of the one previously in Paper
+See GH-453 for rationale
+
+diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
+index 4039317..4446719 100644
+--- a/src/main/java/net/minecraft/server/Entity.java
++++ b/src/main/java/net/minecraft/server/Entity.java
+@@ -307,6 +307,7 @@ public abstract class Entity implements ICommandListener {
+         this.locX = d0;
+         this.locY = d1;
+         this.locZ = d2;
++        if (this instanceof EntityPlayer && ((EntityPlayer) this).playerConnection != null) ((EntityPlayer) this).playerConnection.captureCurrentPosition(); // Paper
+         float f = this.width / 2.0F;
+         float f1 = this.length;
+ 
+diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
+index 59f7020..870a4b5 100644
+--- a/src/main/java/net/minecraft/server/PlayerConnection.java
++++ b/src/main/java/net/minecraft/server/PlayerConnection.java
+@@ -135,9 +135,12 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
+     // CraftBukkit end
+ 
+     public void E_() {
++        // Paper start - Unreverse the order of location update, GH-453
++        this.d();
+         // CraftBukkit start - SPIGOT-1903: reverse order of location update
+         this.player.k_();
+-        this.d();
++        //this.d();
++        // Paper end
+         // CraftBukkit end
+         this.player.setLocation(this.l, this.m, this.n, this.player.yaw, this.player.pitch);
+         ++this.e;
+@@ -206,7 +209,7 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
+ 
+     }
+ 
+-    private void d() {
++    public void captureCurrentPosition() { d(); } private void d() { // Paper - OBFHELPER
+         this.l = this.player.locX;
+         this.m = this.player.locY;
+         this.n = this.player.locZ;
+-- 
+2.9.3
+