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());