--- ../src-base/minecraft/net/minecraft/entity/projectile/EntityThrowable.java +++ ../src-work/minecraft/net/minecraft/entity/projectile/EntityThrowable.java @@ -24,8 +24,8 @@ private Block field_145785_f; protected boolean inGround; public int throwableShake; - private EntityLivingBase thrower; - private String throwerName; + public EntityLivingBase thrower; // CraftBukkit - private -> public + public String throwerName; // CraftBukkit - private -> public private int ticksInGround; private int ticksInAir; private static final String __OBFID = "CL_00001723"; @@ -50,6 +50,7 @@ { super(p_i1777_1_); this.thrower = p_i1777_2_; + this.projectileSource = (org.bukkit.entity.LivingEntity) p_i1777_2_.getBukkitEntity(); // CraftBukkit this.setSize(0.25F, 0.25F); this.setLocationAndAngles(p_i1777_2_.posX, p_i1777_2_.posY + (double)p_i1777_2_.getEyeHeight(), p_i1777_2_.posZ, p_i1777_2_.rotationYaw, p_i1777_2_.rotationPitch); this.posX -= (double)(MathHelper.cos(this.rotationYaw / 180.0F * (float)Math.PI) * 0.16F); @@ -187,7 +188,7 @@ if (movingobjectposition1 != null) { - double d1 = vec3.distanceTo(movingobjectposition1.hitVec); + double d1 = vec3.squareDistanceTo(movingobjectposition1.hitVec); // CraftBukkit - distance efficiency if (d1 < d0 || d0 == 0.0D) { @@ -213,6 +214,14 @@ else { this.onImpact(movingobjectposition); + + // CraftBukkit start + if (this.isDead) + { + org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this); + } + + // CraftBukkit end } }