package tc.oc.commons.bukkit.listeners; import javax.annotation.Nullable; import org.bukkit.event.inventory.ClickType; import org.bukkit.event.inventory.InventoryType; import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryView; import org.bukkit.inventory.ItemStack; public interface WindowListener { /** * Called when a window is opened, or when the listener is registered to an already open window. */ default void windowOpened(InventoryView window) {} /** * Called when a window is closed. This is guaranteed to be called exactly once after every call to * {@link #windowOpened(InventoryView)}, and before that method is called for any other window * opened by the same player. */ default void windowClosed(InventoryView window) {} /** * Called when an open window is clicked. */ default boolean windowClicked(InventoryView window, Inventory inventory, ClickType clickType, InventoryType.SlotType slotType, int slotIndex, @Nullable ItemStack item) { return false; } }