SPIGOT-1347: Don't change entity add behaviour, just print warning.

This commit is contained in:
md_5 2015-12-17 10:24:55 +11:00
parent 4ac23479e5
commit d3e0b6fead

View file

@ -507,7 +507,7 @@
Iterator iterator = arraylist.iterator(); Iterator iterator = arraylist.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
@@ -695,12 +920,37 @@ @@ -695,12 +920,29 @@
this.worldData.k(this.getWorldBorder().getWarningTime()); this.worldData.k(this.getWorldBorder().getWarningTime());
this.worldData.b(this.getWorldBorder().j()); this.worldData.b(this.getWorldBorder().j());
this.worldData.e(this.getWorldBorder().i()); this.worldData.e(this.getWorldBorder().i());
@ -530,23 +530,15 @@
+ +
+ if (this.g.contains(entity1)) { + if (this.g.contains(entity1)) {
+ WorldServer.a.warn("Tried to add entity " + EntityTypes.b(entity1) + " with pending removal and duplicate UUID " + uuid.toString()); + WorldServer.a.warn("Tried to add entity " + EntityTypes.b(entity1) + " with pending removal and duplicate UUID " + uuid.toString());
+ this.g.remove(entity1);
+ } else { + } else {
+ if (!(entity instanceof EntityHuman)) { + WorldServer.a.warn("Tried to add entity " + EntityTypes.b(entity1) + " that already exists with UUID " + uuid.toString());
+ 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());
+ } + }
+
+ this.removeEntity(entity1);
+ } + }
+ // CraftBukkit end + // CraftBukkit end
this.entitiesById.a(entity.getId(), entity); this.entitiesById.a(entity.getId(), entity);
this.entitiesByUUID.put(entity.getUniqueID(), entity); this.entitiesByUUID.put(entity.getUniqueID(), entity);
Entity[] aentity = entity.aB(); Entity[] aentity = entity.aB();
@@ -728,8 +978,16 @@ @@ -728,8 +970,16 @@
} }
public boolean strikeLightning(Entity entity) { public boolean strikeLightning(Entity entity) {
@ -564,7 +556,7 @@
return true; return true;
} else { } else {
return false; 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) { public Explosion createExplosion(Entity entity, double d0, double d1, double d2, float f, boolean flag, boolean flag1) {
@ -585,7 +577,7 @@
if (!flag1) { if (!flag1) {
explosion.clearBlocks(); explosion.clearBlocks();
} }
@@ -790,7 +1058,8 @@ @@ -790,7 +1050,8 @@
BlockActionData blockactiondata = (BlockActionData) iterator.next(); BlockActionData blockactiondata = (BlockActionData) iterator.next();
if (this.a(blockactiondata)) { if (this.a(blockactiondata)) {
@ -595,7 +587,7 @@
} }
} }
@@ -813,6 +1082,7 @@ @@ -813,6 +1074,7 @@
boolean flag = this.S(); boolean flag = this.S();
super.p(); super.p();
@ -603,7 +595,7 @@
if (this.o != this.p) { if (this.o != this.p) {
this.server.getPlayerList().a(new PacketPlayOutGameStateChange(7, this.p), this.worldProvider.getDimension()); 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(7, this.p));
this.server.getPlayerList().sendAll(new PacketPlayOutGameStateChange(8, this.r)); 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) { 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) {