From d6358a6ac1513f2ce6690593c38162be44c343ad Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sun, 11 Jun 2017 19:46:11 -0500 Subject: [PATCH] PlayerAttemptPickupItemEvent (#732) --- .../0051-PlayerAttemptPickupItemEvent.patch | 51 +++++++++++++++++++ .../0211-PlayerAttemptPickupItemEvent.patch | 34 +++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 Spigot-API-Patches/0051-PlayerAttemptPickupItemEvent.patch create mode 100644 Spigot-Server-Patches/0211-PlayerAttemptPickupItemEvent.patch diff --git a/Spigot-API-Patches/0051-PlayerAttemptPickupItemEvent.patch b/Spigot-API-Patches/0051-PlayerAttemptPickupItemEvent.patch new file mode 100644 index 0000000000..200f05e99f --- /dev/null +++ b/Spigot-API-Patches/0051-PlayerAttemptPickupItemEvent.patch @@ -0,0 +1,51 @@ +From a631841be7233f73e601e109bbfdcc5a57e8ae6b Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Sun, 11 Jun 2017 16:30:37 -0500 +Subject: [PATCH] PlayerAttemptPickupItemEvent + + +diff --git a/src/main/java/org/bukkit/event/player/PlayerAttemptPickupItemEvent.java b/src/main/java/org/bukkit/event/player/PlayerAttemptPickupItemEvent.java +new file mode 100644 +index 00000000..2f5fdb13 +--- /dev/null ++++ b/src/main/java/org/bukkit/event/player/PlayerAttemptPickupItemEvent.java +@@ -0,0 +1,36 @@ ++package org.bukkit.event.player; ++ ++import org.bukkit.entity.Item; ++import org.bukkit.entity.Player; ++import org.bukkit.event.HandlerList; ++ ++/** ++ * Thrown when a player attempts to pick an item up from the ground ++ */ ++public class PlayerAttemptPickupItemEvent extends PlayerEvent { ++ private static final HandlerList handlers = new HandlerList(); ++ private final Item item; ++ ++ public PlayerAttemptPickupItemEvent(final Player player, final Item item) { ++ super(player); ++ this.item = item; ++ } ++ ++ /** ++ * Gets the Item attempted by the player. ++ * ++ * @return Item ++ */ ++ public Item getItem() { ++ return item; ++ } ++ ++ @Override ++ public HandlerList getHandlers() { ++ return handlers; ++ } ++ ++ public static HandlerList getHandlerList() { ++ return handlers; ++ } ++} +-- +2.11.0 + diff --git a/Spigot-Server-Patches/0211-PlayerAttemptPickupItemEvent.patch b/Spigot-Server-Patches/0211-PlayerAttemptPickupItemEvent.patch new file mode 100644 index 0000000000..e586561200 --- /dev/null +++ b/Spigot-Server-Patches/0211-PlayerAttemptPickupItemEvent.patch @@ -0,0 +1,34 @@ +From 63577ff15d7e0f32eec140953d7dd818b0022c54 Mon Sep 17 00:00:00 2001 +From: BillyGalbreath +Date: Sun, 11 Jun 2017 16:30:30 -0500 +Subject: [PATCH] PlayerAttemptPickupItemEvent + + +diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java +index 95ca1b8e..8820dd32 100644 +--- a/src/main/java/net/minecraft/server/EntityItem.java ++++ b/src/main/java/net/minecraft/server/EntityItem.java +@@ -4,6 +4,7 @@ import java.util.Iterator; + import javax.annotation.Nullable; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; ++import org.bukkit.event.player.PlayerAttemptPickupItemEvent; + import org.bukkit.event.player.PlayerPickupItemEvent; // CraftBukkit + import com.destroystokyo.paper.HopperPusher; // Paper + +@@ -325,6 +326,12 @@ public class EntityItem extends Entity implements HopperPusher { + Item item = itemstack.getItem(); + int i = itemstack.getCount(); + ++ // Paper start ++ if (this.pickupDelay <= 0) { ++ this.world.getServer().getPluginManager().callEvent(new PlayerAttemptPickupItemEvent((org.bukkit.entity.Player) entityhuman.getBukkitEntity(), (org.bukkit.entity.Item) this.getBukkitEntity())); ++ } ++ // Paper end ++ + // CraftBukkit start - fire PlayerPickupItemEvent + int canHold = entityhuman.inventory.canHold(itemstack); + int remaining = i - canHold; +-- +2.11.0 +