From 3e80d2e4ecbcf7e448cf9347b41d60888f746740 Mon Sep 17 00:00:00 2001
From: CraftBukkit/Spigot <noreply+git-craftbukkit@papermc.io>
Date: Mon, 28 Dec 2020 08:58:39 +1100
Subject: [PATCH] SPIGOT-6273: Expose ItemFrame ItemDropChance through API

By: md_5 <git@md-5.net>
---
 paper-server/nms-patches/EntityItemFrame.patch       |  9 +++++++++
 .../bukkit/craftbukkit/entity/CraftItemFrame.java    | 12 ++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/paper-server/nms-patches/EntityItemFrame.patch b/paper-server/nms-patches/EntityItemFrame.patch
index 13cff21e36..caa815f285 100644
--- a/paper-server/nms-patches/EntityItemFrame.patch
+++ b/paper-server/nms-patches/EntityItemFrame.patch
@@ -1,5 +1,14 @@
 --- a/net/minecraft/server/EntityItemFrame.java
 +++ b/net/minecraft/server/EntityItemFrame.java
+@@ -10,7 +10,7 @@
+     private static final Logger LOGGER = LogManager.getLogger();
+     private static final DataWatcherObject<ItemStack> ITEM = DataWatcher.a(EntityItemFrame.class, DataWatcherRegistry.g);
+     private static final DataWatcherObject<Integer> g = DataWatcher.a(EntityItemFrame.class, DataWatcherRegistry.b);
+-    private float ag = 1.0F;
++    public float ag = 1.0F; // PAIL itemDropChance
+     public boolean fixed;
+ 
+     public EntityItemFrame(EntityTypes<? extends EntityItemFrame> entitytypes, World world) {
 @@ -53,16 +53,27 @@
      @Override
      protected void updateBoundingBox() {
diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java
index 072c56b8a2..ee9035cefc 100644
--- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java
+++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftItemFrame.java
@@ -1,5 +1,6 @@
 package org.bukkit.craftbukkit.entity;
 
+import com.google.common.base.Preconditions;
 import net.minecraft.server.BlockPosition;
 import net.minecraft.server.EntityHanging;
 import net.minecraft.server.EntityItemFrame;
@@ -69,6 +70,17 @@ public class CraftItemFrame extends CraftHanging implements ItemFrame {
         return CraftItemStack.asBukkitCopy(getHandle().getItem());
     }
 
+    @Override
+    public float getItemDropChance() {
+        return getHandle().ag;
+    }
+
+    @Override
+    public void setItemDropChance(float chance) {
+        Preconditions.checkArgument(0.0 <= chance && chance <= 1.0, "Chance outside range [0, 1]");
+        getHandle().ag = chance;
+    }
+
     @Override
     public Rotation getRotation() {
         return toBukkitRotation(getHandle().getRotation());