PaperMC/Spigot-API-Patches/0107-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch
Aikar 36f34f01c0
Updated Upstream (Bukkit/CraftBukkit)
Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

Bukkit Changes:
da9ef3c5 #496: Add methods to get/set ItemStacks in EquipmentSlots
3abebc9f #492: Let Tameable extend Animals rather than Entity
941111a0 #495: Expose ItemStack and hand used in PlayerShearEntityEvent
4fe19cae #494: InventoryView - Add missing Brewing FUEL_TIME

CraftBukkit Changes:
933e9094 #664: Add methods to get/set ItemStacks in EquipmentSlots
18722312 #662: Expose ItemStack and hand used in PlayerShearEntityEvent
2020-05-06 06:05:22 -04:00

50 lines
2.1 KiB
Diff

From 0000000000000000000000000000000000000000 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 18c5e31abcdc24320bb6c01e85ba85c848956bd4..37dbc12eb47060ebf0f6a18960d036bd27ce3740 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;