From 8cff2d98b5379af84aeab9de2dcc13e26d470c03 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 18c5e31a..37dbc12e 100644
--- a/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java
+++ b/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java
@@ -2,6 +2,7 @@ package org.bukkit.event.entity;
 
 import org.bukkit.entity.Entity;
 import org.bukkit.entity.LivingEntity;
+import org.bukkit.entity.Projectile; // Paper
 import org.bukkit.event.Cancellable;
 import org.bukkit.event.HandlerList;
 import org.bukkit.inventory.ItemStack;
@@ -17,9 +18,30 @@ 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 void setConsumeArrow(boolean consumeArrow) {
+        this.consumeArrow = consumeArrow;
+    }
+    public boolean getConsumeArrow() {
+        return consumeArrow;
+    }
 
+    @NotNull
+    public ItemStack getArrowItem() {
+        return arrowItem;
+    }
+
+    @Deprecated
     public EntityShootBowEvent(@NotNull final LivingEntity shooter, @Nullable final ItemStack bow, @NotNull final Entity projectile, final float force) {
+        this(shooter, bow, new ItemStack(org.bukkit.Material.AIR), projectile, force);
+    }
+
+    public EntityShootBowEvent(@NotNull final LivingEntity shooter, @Nullable final ItemStack bow, @NotNull ItemStack arrowItem, @NotNull final Entity projectile, final float force) {
         super(shooter);
+        this.arrowItem = arrowItem;
+        // Paper end
         this.bow = bow;
         this.projectile = projectile;
         this.force = force;
-- 
2.21.0