From 1fc8092ea69b0eb59a2f01da07eb5e0bd67d5542 Mon Sep 17 00:00:00 2001 From: Nathan Adams Date: Sun, 11 Dec 2011 15:59:55 +0000 Subject: [PATCH] Fixed corrupt mob spawners crashing on load - this fixes BUKKIT-69, BUKKIT-144 --- .../net/minecraft/server/TileEntityMobSpawner.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/minecraft/server/TileEntityMobSpawner.java b/src/main/java/net/minecraft/server/TileEntityMobSpawner.java index 7b499ebc3a..40acc4d86b 100644 --- a/src/main/java/net/minecraft/server/TileEntityMobSpawner.java +++ b/src/main/java/net/minecraft/server/TileEntityMobSpawner.java @@ -48,11 +48,20 @@ public class TileEntityMobSpawner extends TileEntity { byte b0 = 4; for (int i = 0; i < b0; ++i) { - EntityLiving entityliving = (EntityLiving) ((EntityLiving) EntityTypes.a(this.mobName, this.world)); + // CraftBukkit start - bad entity detection + Entity mob = EntityTypes.a(this.mobName, this.world); + + if (!(mob instanceof EntityLiving)) { + mobName = "Pig"; + return; + } + + EntityLiving entityliving = (EntityLiving) ((EntityLiving) mob); if (entityliving == null) { return; } + // CraftBukkit end int j = this.world.a(entityliving.getClass(), AxisAlignedBB.b((double) this.x, (double) this.y, (double) this.z, (double) (this.x + 1), (double) (this.y + 1), (double) (this.z + 1)).b(8.0D, 4.0D, 8.0D)).size();