From d5f47de464e17bc91048e94aaf1de0b539729527 Mon Sep 17 00:00:00 2001 From: Jedediah Smith Date: Fri, 4 Mar 2016 03:16:11 -0500 Subject: [PATCH] Arrow pickup rule API diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java index 2a3482c..fbf289f 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftArrow.java @@ -72,6 +72,44 @@ public class CraftArrow extends AbstractProjectile implements Arrow { getHandle().shooter = ((CraftLivingEntity) shooter).getHandle(); } + // Paper start + @Override + public PickupRule getPickupRule() { + return convertPickupRule(this.getHandle().fromPlayer); + } + + @Override + public void setPickupRule(PickupRule rule) { + this.getHandle().fromPlayer = convertPickupRule(rule); + } + + public static PickupRule convertPickupRule(EntityArrow.PickupStatus nms) { + switch (nms) { + case DISALLOWED: + return PickupRule.DISALLOWED; + case ALLOWED: + return PickupRule.ALLOWED; + case CREATIVE_ONLY: + return PickupRule.CREATIVE_ONLY; + default: + throw new IllegalStateException(); + } + } + + public static EntityArrow.PickupStatus convertPickupRule(PickupRule bukkit) { + switch (bukkit) { + case DISALLOWED: + return EntityArrow.PickupStatus.DISALLOWED; + case ALLOWED: + return EntityArrow.PickupStatus.ALLOWED; + case CREATIVE_ONLY: + return EntityArrow.PickupStatus.CREATIVE_ONLY; + default: + throw new IllegalStateException(); + } + } + // Paper end + // Spigot start private final Arrow.Spigot spigot = new Arrow.Spigot() { -- 2.9.3