From 5d5e0ad75c87af84694591a92b72883904ae5980 Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Wed, 2 Jan 2019 16:39:33 +0000 Subject: [PATCH] Don't double broadcast movement packets (fixes #1784) WROOOONG LEEEVERRR.... --- ...olute-position-the-first-time-an-entity-is-s.patch | 11 ++++++----- .../0112-Entity-Tracking-Improvements.patch | 8 ++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Spigot-Server-Patches/0037-Send-absolute-position-the-first-time-an-entity-is-s.patch b/Spigot-Server-Patches/0037-Send-absolute-position-the-first-time-an-entity-is-s.patch index 002ceef07..cf98a554c 100644 --- a/Spigot-Server-Patches/0037-Send-absolute-position-the-first-time-an-entity-is-s.patch +++ b/Spigot-Server-Patches/0037-Send-absolute-position-the-first-time-an-entity-is-s.patch @@ -1,11 +1,11 @@ -From 99e8159915dbca4b04eac59a3ebe3cb845b70f15 Mon Sep 17 00:00:00 2001 +From 027d9ba0aeedf51baf08e9b0c824b80098818a7f Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Wed, 2 Mar 2016 23:13:07 -0600 Subject: [PATCH] Send absolute position the first time an entity is seen diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index dd6c84b4a..a12a42c32 100644 +index dd6c84b4a..de0cf6b73 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -41,7 +41,19 @@ public class EntityTrackerEntry { @@ -45,10 +45,11 @@ index dd6c84b4a..a12a42c32 100644 if (l1 >= -32768L && l1 < 32768L && i2 >= -32768L && i2 < 32768L && j2 >= -32768L && j2 < 32768L && this.v <= 400 && !this.x && this.y == this.tracker.onGround) { if ((!flag1 || !flag2) && !(this.tracker instanceof EntityArrow)) { if (flag1) { -@@ -202,6 +214,26 @@ public class EntityTrackerEntry { +@@ -201,7 +213,26 @@ public class EntityTrackerEntry { + } if (packet1 != null) { - this.broadcast((Packet) packet1); +- this.broadcast((Packet) packet1); + // Paper start - ensure fresh viewers get an absolute position on their first update, + // since we can't be certain what position they received in the spawn packet. + if (packet1 instanceof PacketPlayOutEntityTeleport) { @@ -72,7 +73,7 @@ index dd6c84b4a..a12a42c32 100644 } this.d(); -@@ -338,7 +370,7 @@ public class EntityTrackerEntry { +@@ -338,7 +369,7 @@ public class EntityTrackerEntry { entityplayer.removeQueue.remove(Integer.valueOf(this.tracker.getId())); // CraftBukkit end diff --git a/Spigot-Server-Patches/0112-Entity-Tracking-Improvements.patch b/Spigot-Server-Patches/0112-Entity-Tracking-Improvements.patch index cbd242dfc..4dbc8e5e6 100644 --- a/Spigot-Server-Patches/0112-Entity-Tracking-Improvements.patch +++ b/Spigot-Server-Patches/0112-Entity-Tracking-Improvements.patch @@ -1,4 +1,4 @@ -From 50cda9c60ae28cd18ad98fc7c6939974b7fec251 Mon Sep 17 00:00:00 2001 +From 2e18b9af25006981e797eb0e9a1347ab4abf5050 Mon Sep 17 00:00:00 2001 From: Aikar Date: Mon, 17 Jun 2013 01:24:00 -0400 Subject: [PATCH] Entity Tracking Improvements @@ -19,7 +19,7 @@ index b6356966a..583cee415 100644 if (bukkitEntity == null) { bukkitEntity = CraftEntity.getEntity(world.getServer(), this); diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java -index 638b54c1e..28a0ea034 100644 +index b3aa57d19..2b8501143 100644 --- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java +++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java @@ -56,6 +56,7 @@ public class EntityTrackerEntry { @@ -30,7 +30,7 @@ index 638b54c1e..28a0ea034 100644 this.tracker = entity; this.e = i; this.f = j; -@@ -454,17 +455,59 @@ public class EntityTrackerEntry { +@@ -453,17 +454,59 @@ public class EntityTrackerEntry { this.tracker.b(entityplayer); entityplayer.d(this.tracker); @@ -90,7 +90,7 @@ index 638b54c1e..28a0ea034 100644 double d0 = entityplayer.locX - (double) this.xLoc / 4096.0D; double d1 = entityplayer.locZ - (double) this.zLoc / 4096.0D; int i = Math.min(this.e, (entityplayer.getViewDistance() - 1) * 16); // Paper - Use player view distance API -@@ -605,6 +648,7 @@ public class EntityTrackerEntry { +@@ -604,6 +647,7 @@ public class EntityTrackerEntry { this.trackedPlayers.remove(entityplayer); this.tracker.c(entityplayer); entityplayer.c(this.tracker);