aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0376-Add-PlayerInventorySlotChangeEvent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0376-Add-PlayerInventorySlotChangeEvent.patch')
-rw-r--r--patches/api/0376-Add-PlayerInventorySlotChangeEvent.patch113
1 files changed, 113 insertions, 0 deletions
diff --git a/patches/api/0376-Add-PlayerInventorySlotChangeEvent.patch b/patches/api/0376-Add-PlayerInventorySlotChangeEvent.patch
new file mode 100644
index 0000000000..d76df6d87d
--- /dev/null
+++ b/patches/api/0376-Add-PlayerInventorySlotChangeEvent.patch
@@ -0,0 +1,113 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jakub Zacek <[email protected]>
+Date: Sun, 24 Apr 2022 22:56:31 +0200
+Subject: [PATCH] Add PlayerInventorySlotChangeEvent
+
+
+diff --git a/src/main/java/io/papermc/paper/event/player/PlayerInventorySlotChangeEvent.java b/src/main/java/io/papermc/paper/event/player/PlayerInventorySlotChangeEvent.java
+new file mode 100644
+index 0000000000000000000000000000000000000000..0be9708dbf84fa51a754474834406f9fa7457dbe
+--- /dev/null
++++ b/src/main/java/io/papermc/paper/event/player/PlayerInventorySlotChangeEvent.java
+@@ -0,0 +1,101 @@
++package io.papermc.paper.event.player;
++
++import org.bukkit.entity.Player;
++import org.bukkit.event.HandlerList;
++import org.bukkit.event.player.PlayerEvent;
++import org.bukkit.inventory.Inventory;
++import org.bukkit.inventory.ItemStack;
++import org.jetbrains.annotations.NotNull;
++
++/**
++ * Called when a slot contents change in a player's inventory.
++ */
++public class PlayerInventorySlotChangeEvent extends PlayerEvent {
++
++ private static final HandlerList HANDLER_LIST = new HandlerList();
++
++ private final int rawSlot;
++ private final int slot;
++ private final ItemStack oldItemStack;
++ private final ItemStack newItemStack;
++ private boolean triggerAdvancements = true;
++
++ public PlayerInventorySlotChangeEvent(@NotNull Player player, int rawSlot, @NotNull ItemStack oldItemStack, @NotNull ItemStack newItemStack) {
++ super(player);
++ this.rawSlot = rawSlot;
++ this.slot = player.getOpenInventory().convertSlot(rawSlot);
++ this.oldItemStack = oldItemStack;
++ this.newItemStack = newItemStack;
++ }
++
++ /**
++ * The raw slot number that was changed.
++ *
++ * @return The raw slot number.
++ */
++ public int getRawSlot() {
++ return this.rawSlot;
++ }
++
++ /**
++ * The slot number that was changed, ready for passing to
++ * {@link Inventory#getItem(int)}. Note that there may be two slots with
++ * the same slot number, since a view links two different inventories.
++ * <p>
++ * If no inventory is opened, internal crafting view is used for conversion.
++ *
++ * @return The slot number.
++ */
++ public int getSlot() {
++ return this.slot;
++ }
++
++ /**
++ * Clone of ItemStack that was in the slot before the change.
++ *
++ * @return The old ItemStack in the slot.
++ */
++ @NotNull
++ public ItemStack getOldItemStack() {
++ return this.oldItemStack;
++ }
++
++ /**
++ * Clone of ItemStack that is in the slot after the change.
++ *
++ * @return The new ItemStack in the slot.
++ */
++ @NotNull
++ public ItemStack getNewItemStack() {
++ return this.newItemStack;
++ }
++
++ /**
++ * Gets whether the slot change advancements will be triggered.
++ *
++ * @return Whether the slot change advancements will be triggered.
++ */
++ public boolean shouldTriggerAdvancements() {
++ return this.triggerAdvancements;
++ }
++
++ /**
++ * Sets whether the slot change advancements will be triggered.
++ *
++ * @param triggerAdvancements Whether the slot change advancements will be triggered.
++ */
++ public void setShouldTriggerAdvancements(boolean triggerAdvancements) {
++ this.triggerAdvancements = triggerAdvancements;
++ }
++
++ @NotNull
++ @Override
++ public HandlerList getHandlers() {
++ return HANDLER_LIST;
++ }
++
++ @NotNull
++ public static HandlerList getHandlerList() {
++ return HANDLER_LIST;
++ }
++}