From 8f0a17d0053904bba6193e2f4d7c46931eb4d966 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Sat, 15 Jun 2013 19:52:04 -0400
Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API

Adds ability to get what arrow was shot, and control if it should be consumed.

diff --git a/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java b/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java
index f8c91a13b..c9eb75aa7 100644
--- a/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java
+++ b/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java
@@ -16,9 +16,28 @@ public class EntityShootBowEvent extends EntityEvent implements Cancellable {
     private Entity projectile;
     private final float force;
     private boolean cancelled;
+    // Paper start
+    private boolean consumeArrow = true;
+    private final ItemStack arrowItem;
+    public boolean getConsumeArrow() {
+        return consumeArrow;
+    }
+    public void setConsumeArrow(boolean consumeArrow) {
+        this.consumeArrow = consumeArrow;
+    }
 
+    public ItemStack getArrowItem() {
+        return arrowItem;
+    }
+
+    @Deprecated
     public EntityShootBowEvent(final LivingEntity shooter, final ItemStack bow, final Projectile projectile, final float force) {
+        this(shooter, bow, new ItemStack(org.bukkit.Material.AIR), projectile, force);
+    }
+    public EntityShootBowEvent(final LivingEntity shooter, final ItemStack bow, ItemStack arrowItem, final Projectile projectile, final float force) {
         super(shooter);
+        this.arrowItem = arrowItem;
+        // Paper end
         this.bow = bow;
         this.projectile = projectile;
         this.force = force;
-- 
2.18.0