--- a/net/minecraft/server/PathfinderGoalHorseTrap.java
+++ b/net/minecraft/server/PathfinderGoalHorseTrap.java
@@ -20,16 +20,17 @@
         this.a.r(false);
         this.a.setTamed(true);
         this.a.setAgeRaw(0);
-        ((WorldServer) this.a.world).strikeLightning(new EntityLightning(this.a.world, this.a.locX(), this.a.locY(), this.a.locZ(), true));
+        ((WorldServer) this.a.world).strikeLightning(new EntityLightning(this.a.world, this.a.locX(), this.a.locY(), this.a.locZ(), true), org.bukkit.event.weather.LightningStrikeEvent.Cause.TRAP); // CraftBukkit
         EntitySkeleton entityskeleton = this.a(difficultydamagescaler, this.a);
 
-        entityskeleton.startRiding(this.a);
+        if (entityskeleton != null) entityskeleton.startRiding(this.a); // CraftBukkit
 
         for (int i = 0; i < 3; ++i) {
             EntityHorseAbstract entityhorseabstract = this.a(difficultydamagescaler);
+            if (entityhorseabstract == null) continue; // CraftBukkit
             EntitySkeleton entityskeleton1 = this.a(difficultydamagescaler, entityhorseabstract);
 
-            entityskeleton1.startRiding(entityhorseabstract);
+            if (entityskeleton1 != null) entityskeleton1.startRiding(entityhorseabstract); // CraftBukkit
             entityhorseabstract.h(this.a.getRandom().nextGaussian() * 0.5D, 0.0D, this.a.getRandom().nextGaussian() * 0.5D);
         }
 
@@ -44,7 +45,7 @@
         entityhorseskeleton.setPersistent();
         entityhorseskeleton.setTamed(true);
         entityhorseskeleton.setAgeRaw(0);
-        entityhorseskeleton.world.addEntity(entityhorseskeleton);
+        if (!entityhorseskeleton.world.addEntity(entityhorseskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.TRAP)) return null; // CraftBukkit
         return entityhorseskeleton;
     }
 
@@ -61,7 +62,7 @@
 
         entityskeleton.setSlot(EnumItemSlot.MAINHAND, EnchantmentManager.a(entityskeleton.getRandom(), entityskeleton.getItemInMainHand(), (int) (5.0F + difficultydamagescaler.d() * (float) entityskeleton.getRandom().nextInt(18)), false));
         entityskeleton.setSlot(EnumItemSlot.HEAD, EnchantmentManager.a(entityskeleton.getRandom(), entityskeleton.getEquipment(EnumItemSlot.HEAD), (int) (5.0F + difficultydamagescaler.d() * (float) entityskeleton.getRandom().nextInt(18)), false));
-        entityskeleton.world.addEntity(entityskeleton);
+        if (!entityskeleton.world.addEntity(entityskeleton, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.JOCKEY)) return null; // CraftBukkit
         return entityskeleton;
     }
 }
