mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 07:48:53 +01:00
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