--- a/net/minecraft/server/EntityProjectile.java +++ b/net/minecraft/server/EntityProjectile.java @@ -32,6 +32,7 @@ this(entitytypes, entityliving.locX, entityliving.locY + (double) entityliving.getHeadHeight() - 0.10000000149011612D, entityliving.locZ, world); this.shooter = entityliving; this.shooterId = entityliving.getUniqueID(); + this.projectileSource = (org.bukkit.entity.LivingEntity) entityliving.getBukkitEntity(); // CraftBukkit } public void a(Entity entity, float f, float f1, float f2, float f3, float f4) { @@ -86,7 +87,7 @@ break; } - if (this.shooter != null && this.ticksLived < 2 && this.as == null) { + if (this.shooter != null && this.ticksLived < 2 && this.as == null && this.shooter == entity) { // CraftBukkit - MC-88491 this.as = entity; this.at = 3; break; @@ -106,6 +107,11 @@ this.c(((MovingObjectPositionBlock) movingobjectposition).getBlockPosition()); } else { this.a(movingobjectposition); + // CraftBukkit start + if (this.dead) { + org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this, movingobjectposition); + } + // CraftBukkit end } }