From f6f9ff67f4e3210480843d9d2a3a7e5c74fca239 Mon Sep 17 00:00:00 2001 From: drXor Date: Tue, 25 Feb 2014 15:15:26 -0400 Subject: [PATCH] Cancellable WitherSkull potion effect diff --git a/src/main/java/net/minecraft/server/EntityWitherSkull.java b/src/main/java/net/minecraft/server/EntityWitherSkull.java index e169184..f0e627b 100644 --- a/src/main/java/net/minecraft/server/EntityWitherSkull.java +++ b/src/main/java/net/minecraft/server/EntityWitherSkull.java @@ -36,8 +36,11 @@ public class EntityWitherSkull extends EntityFireball { protected void a(MovingObjectPosition movingobjectposition) { if (!this.world.isClientSide) { if (movingobjectposition.entity != null) { + // Spigot start + boolean didDamage = false; if (this.shooter != null) { - if (movingobjectposition.entity.damageEntity(DamageSource.projectile(this, shooter), 8.0F)) { // CraftBukkit + didDamage = movingobjectposition.entity.damageEntity(DamageSource.projectile(this, shooter), 8.0F); + if (didDamage) { if (!movingobjectposition.entity.isAlive()) { this.shooter.heal(5.0F, org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason.WITHER); // CraftBukkit } else { @@ -45,10 +48,11 @@ public class EntityWitherSkull extends EntityFireball { } } } else { - movingobjectposition.entity.damageEntity(DamageSource.MAGIC, 5.0F); + didDamage = movingobjectposition.entity.damageEntity(DamageSource.MAGIC, 5.0F); } - if (movingobjectposition.entity instanceof EntityLiving) { + if (didDamage && movingobjectposition.entity instanceof EntityLiving) { + // Spigot end byte b0 = 0; if (this.world.getDifficulty() == EnumDifficulty.NORMAL) { -- 2.1.0