diff --git a/nms-patches/EntityCreeper.patch b/nms-patches/EntityCreeper.patch index 72fa1d2381..2de4eedc23 100644 --- a/nms-patches/EntityCreeper.patch +++ b/nms-patches/EntityCreeper.patch @@ -28,25 +28,27 @@ } -@@ -158,8 +163,18 @@ +@@ -158,9 +163,19 @@ public void onLightningStrike(EntityLightning entitylightning) { super.onLightningStrike(entitylightning); +- this.datawatcher.set(EntityCreeper.b, Boolean.valueOf(true)); + // CraftBukkit start + if (CraftEventFactory.callCreeperPowerEvent(this, entitylightning, org.bukkit.event.entity.CreeperPowerEvent.PowerCause.LIGHTNING).isCancelled()) { + return; + } + + this.setPowered(true); -+ } -+ -+ public void setPowered(boolean powered) { - this.datawatcher.set(EntityCreeper.b, Boolean.valueOf(true)); } -+ // CraftBukkit end ++ public void setPowered(boolean powered) { ++ this.datawatcher.set(EntityCreeper.b, powered); ++ } ++ // CraftBukkit end ++ protected boolean a(EntityHuman entityhuman, EnumHand enumhand, @Nullable ItemStack itemstack) { if (itemstack != null && itemstack.getItem() == Items.FLINT_AND_STEEL) { + this.world.a(entityhuman, this.locX, this.locY, this.locZ, SoundEffects.bx, this.bA(), 1.0F, this.random.nextFloat() * 0.4F + 0.8F); @@ -180,9 +195,17 @@ boolean flag = this.world.getGameRules().getBoolean("mobGriefing"); float f = this.isPowered() ? 2.0F : 1.0F;