--- a/net/minecraft/server/EntityBee.java +++ b/net/minecraft/server/EntityBee.java @@ -152,12 +152,12 @@ } if (b0 > 0) { - ((EntityLiving) entity).addEffect(new MobEffect(MobEffects.POISON, b0 * 20, 0)); + ((EntityLiving) entity).addEffect(new MobEffect(MobEffects.POISON, b0 * 20, 0), org.bukkit.event.entity.EntityPotionEffectEvent.Cause.ATTACK); // CraftBukkit } } this.setHasStung(true); - this.setGoalTarget((EntityLiving) null); + this.setGoalTarget((EntityLiving) null, org.bukkit.event.entity.EntityTargetEvent.TargetReason.FORGOT_TARGET, true); // CraftBukkit this.a(SoundEffects.ENTITY_BEE_STING, 1.0F, 1.0F); } @@ -546,12 +546,16 @@ } else { Entity entity = damagesource.getEntity(); - if (!this.world.isClientSide && entity instanceof EntityHuman && !((EntityHuman) entity).isCreative() && this.hasLineOfSight(entity) && !this.isNoAI()) { + // CraftBukkit start + boolean result = super.damageEntity(damagesource, f); + + if (result && !this.world.isClientSide && entity instanceof EntityHuman && !((EntityHuman) entity).isCreative() && this.hasLineOfSight(entity) && !this.isNoAI()) { this.bJ.l(); this.a(entity); } - return super.damageEntity(damagesource, f); + return result; + // CraftBukkit end } } @@ -572,7 +576,7 @@ class d extends EntityBee.a { private d() { - super(null); + super(); // CraftBukkit - decompile error } @Override @@ -632,7 +636,7 @@ class g extends EntityBee.a { private g() { - super(null); + super(); // CraftBukkit - decompile error } @Override @@ -681,7 +685,7 @@ } } - if (flag) { + if (flag && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(EntityBee.this, blockposition, iblockdata.set(blockstateinteger, (Integer) iblockdata.get(blockstateinteger) + 1)).isCancelled()) { // Spigot EntityBee.this.world.triggerEffect(2005, blockposition, 0); EntityBee.this.world.setTypeUpdate(blockposition, (IBlockData) iblockdata.set(blockstateinteger, (Integer) iblockdata.get(blockstateinteger) + 1)); EntityBee.this.eO(); @@ -696,7 +700,7 @@ class i extends EntityBee.a { private i() { - super(null); + super(); // CraftBukkit - decompile error } @Override @@ -760,7 +764,7 @@ private int h = 0; k() { - super(null); + super(); // CraftBukkit - decompile error this.a(EnumSet.of(PathfinderGoal.Type.MOVE)); } @@ -944,7 +948,7 @@ private int c; f() { - super(null); + super(); // CraftBukkit - decompile error this.c = EntityBee.this.world.random.nextInt(10); this.a(EnumSet.of(PathfinderGoal.Type.MOVE)); } @@ -1001,7 +1005,7 @@ private PathEntity e; e() { - super(null); + super(); // CraftBukkit - decompile error this.c = EntityBee.this.world.random.nextInt(10); this.d = Lists.newArrayList(); this.e = null; @@ -1210,7 +1214,7 @@ @Override protected void a(EntityInsentient entityinsentient, EntityLiving entityliving) { if (entityinsentient instanceof EntityBee && this.e.hasLineOfSight(entityliving) && ((EntityBee) entityinsentient).a((Entity) entityliving)) { - entityinsentient.setGoalTarget(entityliving); + entityinsentient.setGoalTarget(entityliving, org.bukkit.event.entity.EntityTargetEvent.TargetReason.TARGET_ATTACKED_ENTITY, true); // CraftBukkit - reason } }