2014-11-28 18:43:48 +01:00
|
|
|
--- ../work/decompile-8eb82bde//net/minecraft/server/EntityProjectile.java 2014-11-28 17:43:43.153707434 +0000
|
|
|
|
+++ src/main/java/net/minecraft/server/EntityProjectile.java 2014-11-28 17:38:23.000000000 +0000
|
2014-11-25 22:32:16 +01:00
|
|
|
@@ -25,6 +25,7 @@
|
|
|
|
public EntityProjectile(World world, EntityLiving entityliving) {
|
|
|
|
super(world);
|
|
|
|
this.shooter = entityliving;
|
|
|
|
+ this.projectileSource = (org.bukkit.entity.LivingEntity) entityliving.getBukkitEntity(); // CraftBukkit
|
|
|
|
this.a(0.25F, 0.25F);
|
|
|
|
this.setPositionRotation(entityliving.locX, entityliving.locY + (double) entityliving.getHeadHeight(), entityliving.locZ, entityliving.yaw, entityliving.pitch);
|
|
|
|
this.locX -= (double) (MathHelper.cos(this.yaw / 180.0F * 3.1415927F) * 0.16F);
|
|
|
|
@@ -130,7 +131,7 @@
|
|
|
|
MovingObjectPosition movingobjectposition1 = axisalignedbb.a(vec3d, vec3d1);
|
|
|
|
|
|
|
|
if (movingobjectposition1 != null) {
|
|
|
|
- double d1 = vec3d.f(movingobjectposition1.pos);
|
|
|
|
+ double d1 = vec3d.distanceSquared(movingobjectposition1.pos); // CraftBukkit - distance efficiency
|
|
|
|
|
|
|
|
if (d1 < d0 || d0 == 0.0D) {
|
|
|
|
entity = entity1;
|
|
|
|
@@ -150,6 +151,11 @@
|
|
|
|
this.aq();
|
|
|
|
} else {
|
|
|
|
this.a(movingobjectposition);
|
|
|
|
+ // CraftBukkit start
|
|
|
|
+ if (this.dead) {
|
|
|
|
+ org.bukkit.craftbukkit.event.CraftEventFactory.callProjectileHitEvent(this);
|
|
|
|
+ }
|
|
|
|
+ // CraftBukkit end
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|