--- a/net/minecraft/server/EntityPig.java +++ b/net/minecraft/server/EntityPig.java @@ -2,6 +2,11 @@ import javax.annotation.Nullable; +// CraftBukkit start +import org.bukkit.craftbukkit.event.CraftEventFactory; +import org.bukkit.event.entity.EntityTransformEvent; +// CraftBukkit end + public class EntityPig extends EntityAnimal { private static final DataWatcherObject<Boolean> bC = DataWatcher.a(EntityPig.class, DataWatcherRegistry.i); @@ -118,13 +123,14 @@ } public void die(DamageSource damagesource) { - super.die(damagesource); + // super.die(damagesource); // CraftBukkit - Moved to end if (!this.world.isClientSide) { if (this.hasSaddle()) { this.a((IMaterial) Items.SADDLE); } } + super.die(damagesource); // CraftBukkit - Moved from above } @Nullable @@ -157,7 +163,13 @@ entitypigzombie.setCustomNameVisible(this.getCustomNameVisible()); } - this.world.addEntity(entitypigzombie); + // CraftBukkit start + if (CraftEventFactory.callPigZapEvent(this, entitylightning, entitypigzombie).isCancelled()) { + return; + } + // CraftBukkit - added a reason for spawning this creature + this.world.addEntity(entitypigzombie, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.LIGHTNING); + // CraftBukkit end this.die(); } }