From d3e0b6feadd3d47c440b0d212f3a0962b69f2134 Mon Sep 17 00:00:00 2001 From: md_5 Date: Thu, 17 Dec 2015 10:24:55 +1100 Subject: [PATCH] SPIGOT-1347: Don't change entity add behaviour, just print warning. --- nms-patches/WorldServer.patch | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/nms-patches/WorldServer.patch b/nms-patches/WorldServer.patch index be617f4132..394e4bab73 100644 --- a/nms-patches/WorldServer.patch +++ b/nms-patches/WorldServer.patch @@ -507,7 +507,7 @@ Iterator iterator = arraylist.iterator(); while (iterator.hasNext()) { -@@ -695,12 +920,37 @@ +@@ -695,12 +920,29 @@ this.worldData.k(this.getWorldBorder().getWarningTime()); this.worldData.b(this.getWorldBorder().j()); this.worldData.e(this.getWorldBorder().i()); @@ -530,23 +530,15 @@ + + if (this.g.contains(entity1)) { + WorldServer.a.warn("Tried to add entity " + EntityTypes.b(entity1) + " with pending removal and duplicate UUID " + uuid.toString()); -+ this.g.remove(entity1); + } else { -+ if (!(entity instanceof EntityHuman)) { -+ WorldServer.a.warn("Keeping entity " + EntityTypes.b(entity1) + " that already exists with UUID " + uuid.toString()); -+ return; -+ } -+ -+ WorldServer.a.warn("Force-added player with duplicate UUID " + uuid.toString()); ++ WorldServer.a.warn("Tried to add entity " + EntityTypes.b(entity1) + " that already exists with UUID " + uuid.toString()); + } -+ -+ this.removeEntity(entity1); + } + // CraftBukkit end this.entitiesById.a(entity.getId(), entity); this.entitiesByUUID.put(entity.getUniqueID(), entity); Entity[] aentity = entity.aB(); -@@ -728,8 +978,16 @@ +@@ -728,8 +970,16 @@ } public boolean strikeLightning(Entity entity) { @@ -564,7 +556,7 @@ return true; } else { return false; -@@ -741,10 +999,20 @@ +@@ -741,10 +991,20 @@ } public Explosion createExplosion(Entity entity, double d0, double d1, double d2, float f, boolean flag, boolean flag1) { @@ -585,7 +577,7 @@ if (!flag1) { explosion.clearBlocks(); } -@@ -790,7 +1058,8 @@ +@@ -790,7 +1050,8 @@ BlockActionData blockactiondata = (BlockActionData) iterator.next(); if (this.a(blockactiondata)) { @@ -595,7 +587,7 @@ } } -@@ -813,6 +1082,7 @@ +@@ -813,6 +1074,7 @@ boolean flag = this.S(); super.p(); @@ -603,7 +595,7 @@ if (this.o != this.p) { this.server.getPlayerList().a(new PacketPlayOutGameStateChange(7, this.p), this.worldProvider.getDimension()); } -@@ -831,6 +1101,21 @@ +@@ -831,6 +1093,21 @@ this.server.getPlayerList().sendAll(new PacketPlayOutGameStateChange(7, this.p)); this.server.getPlayerList().sendAll(new PacketPlayOutGameStateChange(8, this.r)); } @@ -625,7 +617,7 @@ } -@@ -859,10 +1144,17 @@ +@@ -859,10 +1136,17 @@ } public void a(EnumParticle enumparticle, boolean flag, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, int... aint) {