Paper/Spigot-API-Patches/0108-EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch
Spottedleaf 2f782a6652 Updated Upstream (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

CraftBukkit Changes:
17543ecf SPIGOT-5035: Error Using Virtual Merchant GUI
0fc6922b SPIGOT-5028: Villager#setVillagerExperience() doesn't work
bdbdbe44 SPIGOT-5024: Fox error - Unknown target reason
2019-06-06 16:56:51 +01:00

54 lines
2.1 KiB
Diff

From 43cb4f347979fa70a0374d85f070f6e69f9230e1 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 18c5e31ab..37dbc12eb 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