From 470050ad1e8944e0fcd8c966043705c2b006c3a8 Mon Sep 17 00:00:00 2001 From: md_5 Date: Sun, 20 Jun 2021 12:15:28 +1000 Subject: [PATCH] SPIGOT-6587: Update documentation/error of drop chance API --- .../bukkit/craftbukkit/inventory/CraftEntityEquipment.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftEntityEquipment.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftEntityEquipment.java index 879ef718b..b87b5299b 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftEntityEquipment.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftEntityEquipment.java @@ -247,6 +247,8 @@ public class CraftEntityEquipment implements EntityEquipment { } private void setDropChance(EnumItemSlot slot, float chance) { + Preconditions.checkArgument(entity.getHandle() instanceof EntityInsentient, "Cannot set drop chance for non-Mob entity"); + if (slot == EnumItemSlot.MAINHAND || slot == EnumItemSlot.OFFHAND) { ((EntityInsentient) entity.getHandle()).handDropChances[slot.b()] = chance; } else { @@ -255,6 +257,10 @@ public class CraftEntityEquipment implements EntityEquipment { } private float getDropChance(EnumItemSlot slot) { + if (!(entity.getHandle() instanceof EntityInsentient)) { + return 1; + } + if (slot == EnumItemSlot.MAINHAND || slot == EnumItemSlot.OFFHAND) { return ((EntityInsentient) entity.getHandle()).handDropChances[slot.b()]; } else {