From 4ebd1808aa11ee5206e8c797198ebfc9ec59b26f Mon Sep 17 00:00:00 2001 From: Spottedleaf Date: Tue, 7 May 2019 18:13:24 -0700 Subject: [PATCH] Actually write to the tracker field on entity perhaps we can also look into removing this modification altogether --- ...5-Optional-TNT-doesn-t-move-in-water.patch | 6 ++-- ...ies-option-to-debug-dupe-uuid-issues.patch | 31 ++++++++++++++++--- 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/Spigot-Server-Patches/0105-Optional-TNT-doesn-t-move-in-water.patch b/Spigot-Server-Patches/0105-Optional-TNT-doesn-t-move-in-water.patch index 92ad3b6b7..c3e126bfd 100644 --- a/Spigot-Server-Patches/0105-Optional-TNT-doesn-t-move-in-water.patch +++ b/Spigot-Server-Patches/0105-Optional-TNT-doesn-t-move-in-water.patch @@ -1,4 +1,4 @@ -From ff6b987910bf028eaeab7c4ed38bd9e7ee35e319 Mon Sep 17 00:00:00 2001 +From 530d6b6635e21f94b2334b735f3c773ce70a947c Mon Sep 17 00:00:00 2001 From: Zach Brown Date: Sun, 22 May 2016 20:20:55 -0500 Subject: [PATCH] Optional TNT doesn't move in water @@ -71,7 +71,7 @@ index 2f4e56fc56..2f1cd47619 100644 } diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java -index e0535604b6..479b62d665 100644 +index e0535604b6..723ed45d5e 100644 --- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java +++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java @@ -149,4 +149,50 @@ public class EntityTNTPrimed extends Entity { @@ -107,7 +107,7 @@ index e0535604b6..479b62d665 100644 + if (this.inWater) { + // Send position and velocity updates to nearby players on every tick while the TNT is in water. + // This does pretty well at keeping their clients in sync with the server. -+ EntityTrackerEntry ete = this.tracker; // TODO review this (this field isn't written to) ++ PlayerChunkMap.EntityTracker ete = this.tracker; // TODO review this (this field isn't written to) + if (ete != null) { + PacketPlayOutEntityVelocity velocityPacket = new PacketPlayOutEntityVelocity(this); + PacketPlayOutEntityTeleport positionPacket = new PacketPlayOutEntityTeleport(this); diff --git a/Spigot-Server-Patches/0258-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch b/Spigot-Server-Patches/0258-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch index 467f95b54..ab6b26c6a 100644 --- a/Spigot-Server-Patches/0258-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch +++ b/Spigot-Server-Patches/0258-Add-Debug-Entities-option-to-debug-dupe-uuid-issues.patch @@ -1,4 +1,4 @@ -From 29e2b7d741c5bf7cc70114c2dc52d60f41eaed8b Mon Sep 17 00:00:00 2001 +From 1692805bdb3cb7f5ede09255253d2fd08dc16a9e Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 21 Jul 2018 08:25:40 -0400 Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues @@ -6,20 +6,41 @@ Subject: [PATCH] Add Debug Entities option to debug dupe uuid issues Add -Ddebug.entities=true to your JVM flags to gain more information diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java -index 0088d6088a..56adea9cf4 100644 +index 0088d6088a..4a42b7c594 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -75,6 +75,8 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke public com.destroystokyo.paper.loottable.PaperLootableInventoryData lootableData; // Paper protected CraftEntity bukkitEntity; -+ EntityTrackerEntry tracker; // Paper ++ PlayerChunkMap.EntityTracker tracker; // Paper + Throwable addedToWorldStack; // Paper - entity debug public CraftEntity getBukkitEntity() { if (bukkitEntity == null) { bukkitEntity = CraftEntity.getEntity(world.getServer(), this); +diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java +index eee03e39b1..96f814af3c 100644 +--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java ++++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java +@@ -837,6 +837,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { + } else { + PlayerChunkMap.EntityTracker playerchunkmap_entitytracker = new PlayerChunkMap.EntityTracker(entity, i, j, entitytypes.isDeltaTracking()); + ++ entity.tracker = playerchunkmap_entitytracker; // Paper - Fast access to tracker + this.trackedEntities.put(entity.getId(), playerchunkmap_entitytracker); + playerchunkmap_entitytracker.track(this.world.getPlayers()); + if (entity instanceof EntityPlayer) { +@@ -879,7 +880,7 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d { + if (playerchunkmap_entitytracker1 != null) { + playerchunkmap_entitytracker1.a(); + } +- ++ entity.tracker = null; // Paper - We're no longer tracked + } + + protected void g() { diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java -index 2f79f9e947..f8c382cb69 100644 +index 5349a3a8bc..a7e24ed725 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -68,6 +68,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose @@ -31,7 +52,7 @@ index 2f79f9e947..f8c382cb69 100644 public boolean captureBlockStates = false; public boolean captureTreeGeneration = false; diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java -index 1ac79158c1..8515794059 100644 +index e787faed08..08617318a9 100644 --- a/src/main/java/net/minecraft/server/WorldServer.java +++ b/src/main/java/net/minecraft/server/WorldServer.java @@ -77,6 +77,9 @@ public class WorldServer extends World {