Minestom/src/main/java/net/minestom/server/event/inventory/InventoryItemChangeEvent.java
Шандуренко Константин Владимирович 2634042f7d InventoryItemChangeEvent is now recursive and not it's PlayerInventory-based child
2021-09-06 20:27:11 +03:00

65 lines
1.8 KiB
Java

package net.minestom.server.event.inventory;
import net.minestom.server.event.trait.InventoryEvent;
import net.minestom.server.event.trait.RecursiveEvent;
import net.minestom.server.inventory.AbstractInventory;
import net.minestom.server.inventory.Inventory;
import net.minestom.server.item.ItemStack;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* Called when {@link AbstractInventory#safeItemInsert(int, ItemStack)} is being invoked.
* This event cannot be cancelled and items related to the change are already moved.
*
* @see PlayerInventoryItemChangeEvent
*/
@SuppressWarnings("JavadocReference")
public class InventoryItemChangeEvent implements InventoryEvent, RecursiveEvent {
private final Inventory inventory;
private final int slot;
private final ItemStack previousItem;
private final ItemStack newItem;
public InventoryItemChangeEvent(@Nullable Inventory inventory, int slot,
@NotNull ItemStack previousItem, @NotNull ItemStack newItem) {
this.inventory = inventory;
this.slot = slot;
this.previousItem = previousItem;
this.newItem = newItem;
}
/**
* Gets the changed slot number.
*
* @return the changed slot number.
*/
public int getSlot() {
return slot;
}
/**
* Gets a previous item that was on changed slot.
*
* @return a previous item that was on changed slot.
*/
public @NotNull ItemStack getPreviousItem() {
return previousItem;
}
/**
* Gets a new item on a changed slot.
*
* @return a new item on a changed slot.
*/
public @NotNull ItemStack getNewItem() {
return newItem;
}
@Override
public @Nullable Inventory getInventory() {
return inventory;
}
}