From a552117725a316dbae014fb85e431e5264e631d4 Mon Sep 17 00:00:00 2001 From: md_5 Date: Thu, 9 Feb 2017 09:14:44 +1100 Subject: [PATCH] SPIGOT-3054: Correct LLamaSpit launching --- .../bukkit/craftbukkit/entity/CraftLivingEntity.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java index c00260f679..27cd0d43df 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -391,9 +391,15 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { ((EntityFireball) launch).projectileSource = this; launch.setPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); - } else if (LlamaSpit.class.isAssignableFrom(projectile) && getHandle() instanceof EntityLlama) { - launch = new EntityLlamaSpit(world, (EntityLlama) getHandle()); - ((EntityProjectile) launch).a(getHandle(), getHandle().pitch, getHandle().yaw, 0.0F, 1.5F, 10.0F); // EntityLlama + } else if (LlamaSpit.class.isAssignableFrom(projectile)) { + Location location = getEyeLocation(); + Vector direction = location.getDirection(); + + launch = new EntityLlamaSpit(world); + + ((EntityLlamaSpit) launch).shooter = getHandle(); + ((EntityLlamaSpit) launch).shoot(direction.getX(), direction.getY(), direction.getZ(), 1.5F, 10.0F); // EntityLlama + launch.setPositionRotation(location.getX(), location.getY(), location.getZ(), location.getYaw(), location.getPitch()); } Validate.notNull(launch, "Projectile not supported");