From 13a1f18344e24a5438f44fdff9f70c44e8e10683 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 1080b00..edac23d 100644 --- a/src/main/java/net/minecraft/server/EntityWitherSkull.java +++ b/src/main/java/net/minecraft/server/EntityWitherSkull.java @@ -38,8 +38,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 { @@ -47,10 +50,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.5.0