PlayerPickupItemEvent#setFlyAtPlayer (#683)
* PlayerPickupItemEvent#setFlyAtPlayer
This commit is contained in:
parent
8ad4216e18
commit
209b70caab
2 changed files with 105 additions and 0 deletions
|
@ -0,0 +1,56 @@
|
||||||
|
From 1c5d13ab2ee4ed3b4014df257470cf39889789e5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: BillyGalbreath <Blake.Galbreath@GMail.com>
|
||||||
|
Date: Sun, 7 May 2017 06:26:01 -0500
|
||||||
|
Subject: [PATCH] PlayerPickupItemEvent#setFlyAtPlayer
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/event/player/PlayerPickupItemEvent.java b/src/main/java/org/bukkit/event/player/PlayerPickupItemEvent.java
|
||||||
|
index dfba8163..fd97ea21 100644
|
||||||
|
--- a/src/main/java/org/bukkit/event/player/PlayerPickupItemEvent.java
|
||||||
|
+++ b/src/main/java/org/bukkit/event/player/PlayerPickupItemEvent.java
|
||||||
|
@@ -11,6 +11,7 @@ import org.bukkit.event.HandlerList;
|
||||||
|
public class PlayerPickupItemEvent extends PlayerEvent implements Cancellable {
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private final Item item;
|
||||||
|
+ private boolean flyAtPlayer = true; // Paper
|
||||||
|
private boolean cancel = false;
|
||||||
|
private final int remaining;
|
||||||
|
|
||||||
|
@@ -38,12 +39,35 @@ public class PlayerPickupItemEvent extends PlayerEvent implements Cancellable {
|
||||||
|
return remaining;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Paper Start
|
||||||
|
+ /**
|
||||||
|
+ * Set if the item will fly at the player
|
||||||
|
+ * <p>Cancelling the event will set this value to false.</p>
|
||||||
|
+ *
|
||||||
|
+ * @param flyAtPlayer True for item to fly at player
|
||||||
|
+ */
|
||||||
|
+ public void setFlyAtPlayer(boolean flyAtPlayer) {
|
||||||
|
+ this.flyAtPlayer = flyAtPlayer;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ /**
|
||||||
|
+ * Gets if the item will fly at the player
|
||||||
|
+ *
|
||||||
|
+ * @return True if the item will fly at the player
|
||||||
|
+ */
|
||||||
|
+ public boolean getFlyAtPlayer() {
|
||||||
|
+ return flyAtPlayer;
|
||||||
|
+ }
|
||||||
|
+ // Paper End
|
||||||
|
+
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCancelled(boolean cancel) {
|
||||||
|
this.cancel = cancel;
|
||||||
|
+ this.flyAtPlayer = !cancel; // Paper
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
--
|
||||||
|
2.11.0
|
||||||
|
|
|
@ -0,0 +1,49 @@
|
||||||
|
From b8cff2eed487001ad1dfca2d176a6840ef524edc Mon Sep 17 00:00:00 2001
|
||||||
|
From: BillyGalbreath <Blake.Galbreath@GMail.com>
|
||||||
|
Date: Sun, 7 May 2017 06:26:09 -0500
|
||||||
|
Subject: [PATCH] PlayerPickupItemEvent#setFlyAtPlayer
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/EntityItem.java b/src/main/java/net/minecraft/server/EntityItem.java
|
||||||
|
index 95ca1b8e..2dd27d1c 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/EntityItem.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/EntityItem.java
|
||||||
|
@@ -328,6 +328,7 @@ public class EntityItem extends Entity implements HopperPusher {
|
||||||
|
// CraftBukkit start - fire PlayerPickupItemEvent
|
||||||
|
int canHold = entityhuman.inventory.canHold(itemstack);
|
||||||
|
int remaining = i - canHold;
|
||||||
|
+ boolean flyAtPlayer = false; // Paper
|
||||||
|
|
||||||
|
if (this.pickupDelay <= 0 && canHold > 0) {
|
||||||
|
itemstack.setCount(canHold);
|
||||||
|
@@ -335,8 +336,14 @@ public class EntityItem extends Entity implements HopperPusher {
|
||||||
|
// event.setCancelled(!entityhuman.canPickUpLoot); TODO
|
||||||
|
this.world.getServer().getPluginManager().callEvent(event);
|
||||||
|
itemstack.setCount(canHold + remaining);
|
||||||
|
+ flyAtPlayer = event.getFlyAtPlayer(); // Paper
|
||||||
|
|
||||||
|
if (event.isCancelled()) {
|
||||||
|
+ // Paper Start
|
||||||
|
+ if (flyAtPlayer) {
|
||||||
|
+ entityhuman.receive(this, i);
|
||||||
|
+ }
|
||||||
|
+ // Paper End
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -374,7 +381,11 @@ public class EntityItem extends Entity implements HopperPusher {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- entityhuman.receive(this, i);
|
||||||
|
+ // Paper Start
|
||||||
|
+ if (flyAtPlayer) {
|
||||||
|
+ entityhuman.receive(this, i);
|
||||||
|
+ }
|
||||||
|
+ // Paper End
|
||||||
|
if (itemstack.isEmpty()) {
|
||||||
|
this.die();
|
||||||
|
itemstack.setCount(i);
|
||||||
|
--
|
||||||
|
2.11.0
|
||||||
|
|
Loading…
Reference in a new issue