--- a/net/minecraft/server/EntityProjectile.java +++ b/net/minecraft/server/EntityProjectile.java @@ -32,6 +32,7 @@ this(entitytypes, entityliving.locX(), entityliving.getHeadY() - 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) { @@ -83,7 +84,7 @@ break; } - if (this.shooter != null && this.ticksLived < 2 && this.ap == null) { + if (this.shooter != null && this.ticksLived < 2 && this.ap == null && this.shooter == entity) { // CraftBukkit - MC-88491 this.ap = entity; this.aq = 3; break; @@ -103,6 +104,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 } }