summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/EntitySnowman.java
diff options
context:
space:
mode:
authorfeildmaster <admin@feildmaster.com>2012-07-01 05:04:06 -0500
committerfeildmaster <admin@feildmaster.com>2012-07-02 22:22:03 -0500
commit00efc8c464d5af5b2d3d36be839ba0533af34484 (patch)
treec9aa3a6abb8cc9bdd1d1e61d95dfd59515cbf0fc /src/main/java/net/minecraft/server/EntitySnowman.java
parente4e994f710f21c660a892c02a1973d1db490110c (diff)
downloadcraftbukkit-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/net/minecraft/server/EntitySnowman.java')
-rw-r--r--src/main/java/net/minecraft/server/EntitySnowman.java6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/EntitySnowman.java b/src/main/java/net/minecraft/server/EntitySnowman.java
index 457cb03b..518f2532 100644
--- a/src/main/java/net/minecraft/server/EntitySnowman.java
+++ b/src/main/java/net/minecraft/server/EntitySnowman.java
@@ -33,24 +33,30 @@ public class EntitySnowman extends EntityGolem {
public void e() {
super.e();
if (this.aT()) {
+ // CraftBukkit start
EntityDamageEvent event = new EntityDamageEvent(this.getBukkitEntity(), EntityDamageEvent.DamageCause.DROWNING, 1);
this.world.getServer().getPluginManager().callEvent(event);
if (!event.isCancelled()) {
+ event.getEntity().setLastDamageCause(event);
this.damageEntity(DamageSource.DROWN, event.getDamage());
}
+ // CraftBukkit end
}
int i = MathHelper.floor(this.locX);
int j = MathHelper.floor(this.locZ);
if (this.world.getBiome(i, j).i() > 1.0F) {
+ // CraftBukkit start
EntityDamageEvent event = new EntityDamageEvent(this.getBukkitEntity(), EntityDamageEvent.DamageCause.MELTING, 1);
this.world.getServer().getPluginManager().callEvent(event);
if (!event.isCancelled()) {
+ event.getEntity().setLastDamageCause(event);
this.damageEntity(DamageSource.BURN, event.getDamage());
}
+ // CraftBukkit end
}
for (i = 0; i < 4; ++i) {