From fd5b30936be418b1270633aa80c6df0c12665ab6 Mon Sep 17 00:00:00 2001 From: Aikar 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 ec12b57e..d086f331 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 Projectile 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 final Entity projectile, final float force) { + public EntityShootBowEvent(@NotNull final LivingEntity shooter, @Nullable final ItemStack bow, @NotNull ItemStack arrowItem, @NotNull final Projectile projectile, final float force) { super(shooter); + this.arrowItem = arrowItem; + // Paper end this.bow = bow; this.projectile = projectile; this.force = force; -- 2.21.0