From 090c1a60bde0fa830d255a138d819a593d79864a Mon Sep 17 00:00:00 2001
From: Dark Arc <theexcel@rocketmail.com>
Date: Thu, 6 Dec 2012 20:38:23 -0500
Subject: [PATCH] Correctly shoot arrows with the spawnArrow Method. Fixes
 BUKKIT-3116

---
 src/main/java/org/bukkit/craftbukkit/CraftWorld.java | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index f66aa0ed84..346b1833b7 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -304,10 +304,13 @@ public class CraftWorld implements World {
     }
 
     public Arrow spawnArrow(Location loc, Vector velocity, float speed, float spread) {
+        Validate.notNull(loc, "Can not spawn arrow with a null location");
+        Validate.notNull(velocity, "Can not spawn arrow with a null velocity");
+
         EntityArrow arrow = new EntityArrow(world);
-        arrow.setPositionRotation(loc.getX(), loc.getY(), loc.getZ(), 0, 0);
-        world.addEntity(arrow);
+        arrow.setPositionRotation(loc.getX(), loc.getY(), loc.getZ(), loc.getPitch(), loc.getYaw());
         arrow.shoot(velocity.getX(), velocity.getY(), velocity.getZ(), speed, spread);
+        world.addEntity(arrow);
         return (Arrow) arrow.getBukkitEntity();
     }