Minestom/src/main/java/net/minestom/server/event/inventory/InventoryOpenEvent.java
2021-10-06 20:40:17 +02:00

71 lines
1.9 KiB
Java

package net.minestom.server.event.inventory;
import net.minestom.server.entity.Player;
import net.minestom.server.event.trait.CancellableEvent;
import net.minestom.server.event.trait.EntityInstanceEvent;
import net.minestom.server.event.trait.InventoryEvent;
import net.minestom.server.event.trait.PlayerEvent;
import net.minestom.server.inventory.Inventory;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
/**
* Called when a player open an {@link Inventory}.
* <p>
* Executed by {@link Player#openInventory(Inventory)}.
*/
public class InventoryOpenEvent implements InventoryEvent, PlayerEvent, EntityInstanceEvent, CancellableEvent {
private Inventory inventory;
private final Player player;
private boolean cancelled;
public InventoryOpenEvent(@Nullable Inventory inventory, @NotNull Player player) {
this.inventory = inventory;
this.player = player;
}
/**
* Gets the player who opens the inventory.
*
* @return the player who opens the inventory
*/
@NotNull
public Player getPlayer() {
return player;
}
/**
* Gets the inventory to open, this could have been change by the {@link #setInventory(Inventory)}.
*
* @return the inventory to open, null to just close the current inventory if any
*/
@Nullable
@Override
public Inventory getInventory() {
return inventory;
}
/**
* Changes the inventory to open.
* <p>
* To do not open any inventory see {@link #setCancelled(boolean)}.
*
* @param inventory the inventory to open
*/
public void setInventory(@Nullable Inventory inventory) {
this.inventory = inventory;
}
@Override
public boolean isCancelled() {
return cancelled;
}
@Override
public void setCancelled(boolean cancel) {
this.cancelled = cancel;
}
}