diff options
author | feildmaster <admin@feildmaster.com> | 2012-07-01 05:04:06 -0500 |
---|---|---|
committer | feildmaster <admin@feildmaster.com> | 2012-07-02 22:22:03 -0500 |
commit | 00efc8c464d5af5b2d3d36be839ba0533af34484 (patch) | |
tree | c9aa3a6abb8cc9bdd1d1e61d95dfd59515cbf0fc /src/main/java/org | |
parent | e4e994f710f21c660a892c02a1973d1db490110c (diff) | |
download | craftbukkit-00efc8c464d5af5b2d3d36be839ba0533af34484.tar craftbukkit-00efc8c464d5af5b2d3d36be839ba0533af34484.tar.gz craftbukkit-00efc8c464d5af5b2d3d36be839ba0533af34484.tar.lz craftbukkit-00efc8c464d5af5b2d3d36be839ba0533af34484.tar.xz craftbukkit-00efc8c464d5af5b2d3d36be839ba0533af34484.zip |
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.
Diffstat (limited to 'src/main/java/org')
-rw-r--r-- | src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java index 6134d118..370980ed 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -360,7 +360,12 @@ public class CraftEventFactory { } else { event = new EntityDamageEvent(damagee.getBukkitEntity(), cause, damage); } - Bukkit.getPluginManager().callEvent(event); + + callEvent(event); + + if (!event.isCancelled()) { + event.getEntity().setLastDamageCause(event); + } return event; } |