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

@@ -58,6 +58,7 @@ public class FoodMetaData {
entityhuman.world.getServer().getPluginManager().callEvent(event);
if (!event.isCancelled()) {
event.getEntity().setLastDamageCause(event);
entityhuman.damageEntity(DamageSource.STARVE, event.getDamage());
}
// CraftBukkit end