Apply setLastDamageCause after processing events and the event has not been canceled. Fixes BUKKIT-1881

This allows previous causes to be available during the event, as well as making the damage cause a valid one. If EntityDamageEvent is canceled, then it's not the last DamageCause.

Also prevents setting DamageCause involuntarily through construction.
This commit is contained in:
feildmaster
2012-07-01 05:04:06 -05:00
parent e4e994f710
commit 00efc8c464
7 changed files with 20 additions and 1 deletions

View File

@@ -94,6 +94,7 @@ public class BlockCactus extends Block {
world.getServer().getPluginManager().callEvent(event);
if (!event.isCancelled()) {
damagee.setLastDamageCause(event);
entity.damageEntity(DamageSource.CACTUS, event.getDamage());
}
return;