diff options
author | feildmaster <admin@feildmaster.com> | 2012-03-09 15:40:59 -0600 |
---|---|---|
committer | EvilSeph <evilseph@gmail.com> | 2012-03-10 02:08:33 -0500 |
commit | 77ef0510958b7386b7f9b861aa7936f21a183a6b (patch) | |
tree | 6c402f3c583c803cbd81450c788d4c65d0c2707a /src/main/java/net/minecraft/server/EntityMonster.java | |
parent | a967d6e3710df70bbbc7663ed0f3ed8b65810d4d (diff) | |
download | craftbukkit-77ef0510958b7386b7f9b861aa7936f21a183a6b.tar craftbukkit-77ef0510958b7386b7f9b861aa7936f21a183a6b.tar.gz craftbukkit-77ef0510958b7386b7f9b861aa7936f21a183a6b.tar.lz craftbukkit-77ef0510958b7386b7f9b861aa7936f21a183a6b.tar.xz craftbukkit-77ef0510958b7386b7f9b861aa7936f21a183a6b.zip |
[Bleeding] Added new target events. Fixes BUKKIT-935
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityMonster.java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityMonster.java | 26 |
1 files changed, 12 insertions, 14 deletions
diff --git a/src/main/java/net/minecraft/server/EntityMonster.java b/src/main/java/net/minecraft/server/EntityMonster.java index a5881412..5f6dcf65 100644 --- a/src/main/java/net/minecraft/server/EntityMonster.java +++ b/src/main/java/net/minecraft/server/EntityMonster.java @@ -2,7 +2,6 @@ package net.minecraft.server; // CraftBukkit start import org.bukkit.Bukkit; -import org.bukkit.craftbukkit.entity.CraftEntity; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityTargetEvent; @@ -46,20 +45,19 @@ public abstract class EntityMonster extends EntityCreature implements IMonster { if (this.passenger != entity && this.vehicle != entity) { if (entity != this) { - // CraftBukkit start - org.bukkit.entity.Entity bukkitTarget = entity == null ? null : entity.getBukkitEntity(); - - EntityTargetEvent event = new EntityTargetEvent(this.getBukkitEntity(), bukkitTarget, EntityTargetEvent.TargetReason.TARGET_ATTACKED_ENTITY); - Bukkit.getPluginManager().callEvent(event); - - if (!event.isCancelled()) { - if (event.getTarget() == null) { - this.target = null; - this.lastDamager = null; - } else { - this.target = ((CraftEntity) event.getTarget()).getHandle(); - this.lastDamager = this.target instanceof EntityLiving ? (EntityLiving) this.target : null; + // CraftBukkit start - We still need to call events for entities without goals + if (entity != this.target && (this instanceof EntityBlaze || this instanceof EntityEnderman || this instanceof EntitySpider || this instanceof EntityGiantZombie || this instanceof EntitySilverfish)) { + EntityTargetEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityTargetEvent(this, entity, EntityTargetEvent.TargetReason.TARGET_ATTACKED_ENTITY); + + if (!event.isCancelled()) { + if (event.getTarget() == null) { + this.target = null; + } else { + this.target = ((org.bukkit.craftbukkit.entity.CraftEntity) event.getTarget()).getHandle(); + } } + } else { + this.target = entity; } // CraftBukkit end } |