diff --git a/paper-api/src/main/java/org/bukkit/event/player/PlayerPickupItemEvent.java b/paper-api/src/main/java/org/bukkit/event/player/PlayerPickupItemEvent.java
index a73d1b9717..f5166bbf94 100644
--- a/paper-api/src/main/java/org/bukkit/event/player/PlayerPickupItemEvent.java
+++ b/paper-api/src/main/java/org/bukkit/event/player/PlayerPickupItemEvent.java
@@ -17,6 +17,7 @@ import org.jetbrains.annotations.NotNull;
 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;
 
@@ -45,6 +46,28 @@ 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.
+     *
+     * @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
+
     @Override
     public boolean isCancelled() {
         return cancel;
@@ -53,6 +76,7 @@ public class PlayerPickupItemEvent extends PlayerEvent implements Cancellable {
     @Override
     public void setCancelled(boolean cancel) {
         this.cancel = cancel;
+        this.flyAtPlayer = !cancel; // Paper
     }
 
     @NotNull