PlayerAttemptPickupItemEvent (#732)

This commit is contained in:
BillyGalbreath 2017-06-11 19:46:11 -05:00 committed by Zach
parent 209b70caab
commit d6358a6ac1
2 changed files with 85 additions and 0 deletions

View file

@ -0,0 +1,51 @@
From a631841be7233f73e601e109bbfdcc5a57e8ae6b Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com>
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

View file

@ -0,0 +1,34 @@
From 63577ff15d7e0f32eec140953d7dd818b0022c54 Mon Sep 17 00:00:00 2001
From: BillyGalbreath <Blake.Galbreath@GMail.com>
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