SPIGOT-5054: Prevent issue with invalid hanging entities

This commit is contained in:
md_5 2019-06-10 19:02:32 +10:00
parent 0309d17dcc
commit b1c5fd6817

View File

@ -173,3 +173,21 @@
this.die();
this.a((Entity) null);
}
@@ -168,7 +228,7 @@
@Override
public void b(NBTTagCompound nbttagcompound) {
- nbttagcompound.setByte("Facing", (byte) this.direction.get2DRotationValue());
+ if (this.direction != null) nbttagcompound.setByte("Facing", (byte) this.direction.get2DRotationValue()); // CraftBukkit
BlockPosition blockposition = this.getBlockPosition();
nbttagcompound.setInt("TileX", blockposition.getX());
@@ -179,7 +239,7 @@
@Override
public void a(NBTTagCompound nbttagcompound) {
this.blockPosition = new BlockPosition(nbttagcompound.getInt("TileX"), nbttagcompound.getInt("TileY"), nbttagcompound.getInt("TileZ"));
- this.setDirection(EnumDirection.fromType2(nbttagcompound.getByte("Facing")));
+ if (nbttagcompound.hasKeyOfType("Facing", 99)) this.setDirection(EnumDirection.fromType2(nbttagcompound.getByte("Facing"))); // CraftBukkit
}
public abstract int getHangingWidth();