summaryrefslogtreecommitdiffstats
path: root/nms-patches/PathfinderGoalHorseTrap.patch
blob: 35e41e6a1099b85d87170aa0ec7555df7b1cfdc5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
--- a/net/minecraft/server/PathfinderGoalHorseTrap.java
+++ b/net/minecraft/server/PathfinderGoalHorseTrap.java
@@ -18,16 +18,17 @@
         this.a.s(false);
         this.a.setTamed(true);
         this.a.setAgeRaw(0);
-        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.f(this.a.getRandom().nextGaussian() * 0.5D, 0.0D, this.a.getRandom().nextGaussian() * 0.5D);
         }
 
@@ -42,7 +43,7 @@
         entityhorseskeleton.di();
         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;
     }
 
@@ -59,7 +60,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;
     }
 }