aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0137-Item-canEntityPickup.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0137-Item-canEntityPickup.patch')
-rw-r--r--patches/server/0137-Item-canEntityPickup.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/patches/server/0137-Item-canEntityPickup.patch b/patches/server/0137-Item-canEntityPickup.patch
new file mode 100644
index 0000000000..4b622591cc
--- /dev/null
+++ b/patches/server/0137-Item-canEntityPickup.patch
@@ -0,0 +1,57 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: BillyGalbreath <[email protected]>
+Date: Fri, 5 May 2017 03:57:17 -0500
+Subject: [PATCH] Item#canEntityPickup
+
+
+diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
+index 0e88a2212435ff70b5ee661de3977df2b456b29b..2f33036a78a120898b18301bae1585c65fdb69dc 100644
+--- a/src/main/java/net/minecraft/world/entity/Mob.java
++++ b/src/main/java/net/minecraft/world/entity/Mob.java
+@@ -715,6 +715,11 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Targeti
+ ItemEntity entityitem = (ItemEntity) iterator.next();
+
+ if (!entityitem.isRemoved() && !entityitem.getItem().isEmpty() && !entityitem.hasPickUpDelay() && this.wantsToPickUp(entityitem.getItem())) {
++ // Paper start - Item#canEntityPickup
++ if (!entityitem.canMobPickup) {
++ continue;
++ }
++ // Paper end - Item#canEntityPickup
+ this.pickUpItem(entityitem);
+ }
+ }
+diff --git a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+index 16e3bdf6a2789a0828fc9d879b441fa4bd12d428..707fe72003a254a84ceef8a0572fff52997a4129 100644
+--- a/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
++++ b/src/main/java/net/minecraft/world/entity/item/ItemEntity.java
+@@ -59,6 +59,7 @@ public class ItemEntity extends Entity implements TraceableEntity {
+ public UUID target;
+ public final float bobOffs;
+ private int lastTick = MinecraftServer.currentTick - 1; // CraftBukkit
++ public boolean canMobPickup = true; // Paper - Item#canEntityPickup
+
+ public ItemEntity(EntityType<? extends ItemEntity> type, Level world) {
+ super(type, world);
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
+index fb3738f4c558796f41e3327dd41b8aec68007a8a..5620a0849fda49313c68edfd747fedd09641a3d5 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftItem.java
+@@ -63,6 +63,18 @@ public class CraftItem extends CraftEntity implements Item {
+ }
+ }
+
++ // Paper start
++ @Override
++ public boolean canMobPickup() {
++ return this.getHandle().canMobPickup;
++ }
++
++ @Override
++ public void setCanMobPickup(boolean canMobPickup) {
++ this.getHandle().canMobPickup = canMobPickup;
++ }
++ // Paper end
++
+ @Override
+ public void setOwner(UUID uuid) {
+ this.getHandle().setTarget(uuid);