From 911c94db7023a11e6d8b2ee4a68d5926e55ad8c9 Mon Sep 17 00:00:00 2001
From: Jake Potrebic <jake.m.potrebic@gmail.com>
Date: Fri, 23 Apr 2021 03:11:28 -0700
Subject: [PATCH] Add get-set drop chance to EntityEquipment (#5528)

---
 ...t-set-drop-chance-to-EntityEquipment.patch | 43 +++++++++++++++++
 ...t-set-drop-chance-to-EntityEquipment.patch | 48 +++++++++++++++++++
 2 files changed, 91 insertions(+)
 create mode 100644 Spigot-API-Patches/add-get-set-drop-chance-to-EntityEquipment.patch
 create mode 100644 Spigot-Server-Patches/add-get-set-drop-chance-to-EntityEquipment.patch

diff --git a/Spigot-API-Patches/add-get-set-drop-chance-to-EntityEquipment.patch b/Spigot-API-Patches/add-get-set-drop-chance-to-EntityEquipment.patch
new file mode 100644
index 0000000000..b4fbd3259f
--- /dev/null
+++ b/Spigot-API-Patches/add-get-set-drop-chance-to-EntityEquipment.patch
@@ -0,0 +1,43 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <jake.m.potrebic@gmail.com>
+Date: Thu, 22 Apr 2021 00:28:20 -0700
+Subject: [PATCH] add get-set drop chance to EntityEquipment
+
+
+diff --git a/src/main/java/org/bukkit/inventory/EntityEquipment.java b/src/main/java/org/bukkit/inventory/EntityEquipment.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/inventory/EntityEquipment.java
++++ b/src/main/java/org/bukkit/inventory/EntityEquipment.java
+@@ -0,0 +0,0 @@ public interface EntityEquipment {
+      */
+     @Nullable
+     Entity getHolder();
++    // Paper start
++    /**
++     * Gets the drop chance of specified slot.
++     *
++     * <ul>
++     * <li>A drop chance of 0.0F will never drop
++     * <li>A drop chance of 1.0F will always drop
++     * </ul>
++     *
++     * @param slot the slot to get the drop chance of
++     * @return the drop chance for the slot
++     */
++    float getDropChance(@NotNull EquipmentSlot slot);
++
++    /**
++     * Sets the drop chance of the specified slot.
++     *
++     * <ul>
++     * <li>A drop chance of 0.0F will never drop
++     * <li>A drop chance of 1.0F will always drop
++     * </ul>
++     *
++     * @param slot the slot to set the drop chance of
++     * @param chance the drop chance for the slot
++     * @throws UnsupportedOperationException when called on players
++     */
++    void setDropChance(@NotNull EquipmentSlot slot, float chance);
++    // Paper end
+ }
diff --git a/Spigot-Server-Patches/add-get-set-drop-chance-to-EntityEquipment.patch b/Spigot-Server-Patches/add-get-set-drop-chance-to-EntityEquipment.patch
new file mode 100644
index 0000000000..9b432c03f3
--- /dev/null
+++ b/Spigot-Server-Patches/add-get-set-drop-chance-to-EntityEquipment.patch
@@ -0,0 +1,48 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <jake.m.potrebic@gmail.com>
+Date: Thu, 22 Apr 2021 00:28:11 -0700
+Subject: [PATCH] add get-set drop chance to EntityEquipment
+
+
+diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftEntityEquipment.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftEntityEquipment.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftEntityEquipment.java
++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftEntityEquipment.java
+@@ -0,0 +0,0 @@ public class CraftEntityEquipment implements EntityEquipment {
+     public void setBootsDropChance(float chance) {
+         setDropChance(EnumItemSlot.FEET, chance);
+     }
++    // Paper start
++    @Override
++    public float getDropChance(EquipmentSlot slot) {
++        return getDropChance(CraftEquipmentSlot.getNMS(slot));
++    }
++
++    @Override
++    public void setDropChance(EquipmentSlot slot, float chance) {
++        setDropChance(CraftEquipmentSlot.getNMS(slot), chance);
++    }
++    // Paper end
+ 
+     private void setDropChance(EnumItemSlot slot, float chance) {
+         if (slot == EnumItemSlot.MAINHAND || slot == EnumItemSlot.OFFHAND) {
+diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftInventoryPlayer.java
+@@ -0,0 +0,0 @@ public class CraftInventoryPlayer extends CraftInventory implements org.bukkit.i
+     public void setBootsDropChance(float chance) {
+         throw new UnsupportedOperationException("Cannot set drop chance for PlayerInventory");
+     }
++    // Paper start
++    @Override
++    public float getDropChance(EquipmentSlot slot) {
++        return 1;
++    }
++
++    @Override
++    public void setDropChance(EquipmentSlot slot, float chance) {
++        throw new UnsupportedOperationException("Cannot set drop chance for PlayerInventory");
++    }
++    // Paper end
+ }