SPIGOT-4774: Entities don't get marked 'invalid' after being removed
Dieser Commit ist enthalten in:
Ursprung
6de3aa179a
Commit
401641ea6d
@ -330,7 +330,15 @@
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -899,6 +1019,7 @@
|
||||
@@ -876,6 +996,7 @@
|
||||
this.I.remove(((EntityInsentient) entity).getNavigation());
|
||||
}
|
||||
|
||||
+ entity.valid = false; // CraftBukkit
|
||||
}
|
||||
|
||||
private void registerEntity(Entity entity) {
|
||||
@@ -899,6 +1020,7 @@
|
||||
if (entity instanceof EntityInsentient) {
|
||||
this.I.add(((EntityInsentient) entity).getNavigation());
|
||||
}
|
||||
@ -338,7 +346,7 @@
|
||||
}
|
||||
|
||||
}
|
||||
@@ -929,6 +1050,18 @@
|
||||
@@ -929,6 +1051,18 @@
|
||||
}
|
||||
|
||||
public void strikeLightning(EntityLightning entitylightning) {
|
||||
@ -357,7 +365,7 @@
|
||||
this.globalEntityList.add(entitylightning);
|
||||
this.server.getPlayerList().sendPacketNearby((EntityHuman) null, entitylightning.locX, entitylightning.locY, entitylightning.locZ, 512.0D, this.worldProvider.getDimensionManager(), new PacketPlayOutSpawnEntityWeather(entitylightning));
|
||||
}
|
||||
@@ -937,6 +1070,12 @@
|
||||
@@ -937,6 +1071,12 @@
|
||||
public void a(int i, BlockPosition blockposition, int j) {
|
||||
Iterator iterator = this.server.getPlayerList().getPlayers().iterator();
|
||||
|
||||
@ -370,7 +378,7 @@
|
||||
while (iterator.hasNext()) {
|
||||
EntityPlayer entityplayer = (EntityPlayer) iterator.next();
|
||||
|
||||
@@ -945,6 +1084,12 @@
|
||||
@@ -945,6 +1085,12 @@
|
||||
double d1 = (double) blockposition.getY() - entityplayer.locY;
|
||||
double d2 = (double) blockposition.getZ() - entityplayer.locZ;
|
||||
|
||||
@ -383,7 +391,7 @@
|
||||
if (d0 * d0 + d1 * d1 + d2 * d2 < 1024.0D) {
|
||||
entityplayer.playerConnection.sendPacket(new PacketPlayOutBlockBreakAnimation(i, blockposition, j));
|
||||
}
|
||||
@@ -955,12 +1100,14 @@
|
||||
@@ -955,12 +1101,14 @@
|
||||
|
||||
@Override
|
||||
public void a(@Nullable EntityHuman entityhuman, double d0, double d1, double d2, SoundEffect soundeffect, SoundCategory soundcategory, float f, float f1) {
|
||||
@ -400,7 +408,7 @@
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -970,7 +1117,8 @@
|
||||
@@ -970,7 +1118,8 @@
|
||||
|
||||
@Override
|
||||
public void a(@Nullable EntityHuman entityhuman, int i, BlockPosition blockposition, int j) {
|
||||
@ -410,7 +418,7 @@
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1005,6 +1153,14 @@
|
||||
@@ -1005,6 +1154,14 @@
|
||||
|
||||
@Override
|
||||
public Explosion createExplosion(@Nullable Entity entity, DamageSource damagesource, double d0, double d1, double d2, float f, boolean flag, Explosion.Effect explosion_effect) {
|
||||
@ -425,7 +433,7 @@
|
||||
Explosion explosion = new Explosion(this, entity, d0, d1, d2, f, flag, explosion_effect);
|
||||
|
||||
if (damagesource != null) {
|
||||
@@ -1013,6 +1169,8 @@
|
||||
@@ -1013,6 +1170,8 @@
|
||||
|
||||
explosion.a();
|
||||
explosion.a(false);
|
||||
@ -434,7 +442,7 @@
|
||||
if (explosion_effect == Explosion.Effect.NONE) {
|
||||
explosion.clearBlocks();
|
||||
}
|
||||
@@ -1040,7 +1198,8 @@
|
||||
@@ -1040,7 +1199,8 @@
|
||||
BlockActionData blockactiondata = (BlockActionData) this.J.removeFirst();
|
||||
|
||||
if (this.a(blockactiondata)) {
|
||||
@ -444,7 +452,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1083,13 +1242,20 @@
|
||||
@@ -1083,13 +1243,20 @@
|
||||
}
|
||||
|
||||
public <T extends ParticleParam> int a(T t0, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6) {
|
||||
@ -467,7 +475,7 @@
|
||||
++j;
|
||||
}
|
||||
}
|
||||
@@ -1172,7 +1338,13 @@
|
||||
@@ -1172,7 +1339,13 @@
|
||||
@Override
|
||||
public WorldMap a(String s) {
|
||||
return (WorldMap) this.getMinecraftServer().getWorldServer(DimensionManager.OVERWORLD).getWorldPersistentData().b(() -> {
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren