diff --git a/Spigot-API-Patches/Item-canEntityPickup.patch b/Spigot-API-Patches/Item-canEntityPickup.patch new file mode 100644 index 0000000000..6f7b450dac --- /dev/null +++ b/Spigot-API-Patches/Item-canEntityPickup.patch @@ -0,0 +1,32 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Fri, 5 May 2017 03:57:08 -0500 +Subject: [PATCH] Item#canEntityPickup + + +diff --git a/src/main/java/org/bukkit/entity/Item.java b/src/main/java/org/bukkit/entity/Item.java +index 90260b7e..7163f8b0 100644 +--- a/src/main/java/org/bukkit/entity/Item.java ++++ b/src/main/java/org/bukkit/entity/Item.java +@@ -0,0 +0,0 @@ public interface Item extends Entity { + * @param delay New delay + */ + public void setPickupDelay(int delay); ++ ++ // Paper Start ++ /** ++ * Gets if non-player entities can pick this Item up ++ * ++ * @return True if non-player entities can pickup ++ */ ++ public boolean canMobPickup(); ++ ++ /** ++ * Sets if non-player entities can pick this Item up ++ * ++ * @param canMobPickup True to allow non-player entity pickup ++ */ ++ public void setCanMobPickup(boolean canMobPickup); ++ // Paper end + } +-- \ No newline at end of file diff --git a/Spigot-Server-Patches/Item-canEntityPickup.patch b/Spigot-Server-Patches/Item-canEntityPickup.patch new file mode 100644 index 0000000000..63cf704fa2 --- /dev/null +++ b/Spigot-Server-Patches/Item-canEntityPickup.patch @@ -0,0 +1,57 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Fri, 5 May 2017 03:57:17 -0500 +Subject: [PATCH] Item#canEntityPickup + + +diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java +index 1d26555d..3179e627 100644 +--- a/src/main/java/net/minecraft/server/EntityInsentient.java ++++ b/src/main/java/net/minecraft/server/EntityInsentient.java +@@ -0,0 +0,0 @@ public abstract class EntityInsentient extends EntityLiving { + while (iterator.hasNext()) { + EntityItem entityitem = (EntityItem) iterator.next(); + ++ // Paper Start ++ if (!entityitem.canMobPickup) { ++ continue; ++ } ++ // Paper End ++ + if (!entityitem.dead && !entityitem.getItemStack().isEmpty() && !entityitem.t()) { + this.a(entityitem); + } +diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java +index 95ca1b8e..207b6f0b 100644 +--- a/src/main/java/net/minecraft/server/EntityItem.java ++++ b/src/main/java/net/minecraft/server/EntityItem.java +@@ -0,0 +0,0 @@ public class EntityItem extends Entity implements HopperPusher { + private static final DataWatcherObject c = DataWatcher.a(EntityItem.class, DataWatcherRegistry.f); + private int age; + public int pickupDelay; ++ public boolean canMobPickup = true; // Paper + private int f; + private String g; + private String h; +diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +index a17a537d..6bacf204 100644 +--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java ++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java +@@ -0,0 +0,0 @@ public class CraftItem extends CraftEntity implements Item { + item.pickupDelay = Math.min(delay, Short.MAX_VALUE); + } + ++ // Paper Start ++ public boolean canMobPickup() { ++ return item.canMobPickup; ++ } ++ ++ public void setCanMobPickup(boolean canMobPickup) { ++ item.canMobPickup = canMobPickup; ++ } ++ // Paper End ++ + @Override + public String toString() { + return "CraftItem"; +-- \ No newline at end of file