Package xyz.xenondevs.invui.item.impl
Class CycleItem
java.lang.Object
xyz.xenondevs.invui.item.impl.AbstractItem
xyz.xenondevs.invui.item.impl.CycleItem
- All Implemented Interfaces:
Item
An
Item
that cycles through a predefined array of ItemProvider
s when clicked.-
Constructor Summary
ConstructorDescriptionCycleItem
(int startState, @NotNull ItemProvider... states) CycleItem
(@NotNull ItemProvider... states) -
Method Summary
Modifier and TypeMethodDescriptionvoid
cycle
(boolean forward) Gets theItemProvider
.int
getState()
void
handleClick
(@NotNull org.bukkit.event.inventory.ClickType clickType, @NotNull org.bukkit.entity.Player player, @NotNull org.bukkit.event.inventory.InventoryClickEvent event) A method called if theItemStack
associated to thisItem
has been clicked by a player.protected void
handleStateChange
(@Nullable org.bukkit.entity.Player player, int state) static CycleItem
withStateChangeHandler
(BiConsumer<org.bukkit.entity.Player, Integer> stateChangeHandler, int startState, @NotNull ItemProvider... states) static CycleItem
withStateChangeHandler
(BiConsumer<org.bukkit.entity.Player, Integer> stateChangeHandler, @NotNull ItemProvider... states) Methods inherited from class xyz.xenondevs.invui.item.impl.AbstractItem
addWindow, getWindows, notifyWindows, removeWindow
-
Constructor Details
-
CycleItem
-
CycleItem
-
-
Method Details
-
withStateChangeHandler
public static CycleItem withStateChangeHandler(BiConsumer<org.bukkit.entity.Player, Integer> stateChangeHandler, @NotNull @NotNull ItemProvider... states) -
withStateChangeHandler
public static CycleItem withStateChangeHandler(BiConsumer<org.bukkit.entity.Player, Integer> stateChangeHandler, int startState, @NotNull @NotNull ItemProvider... states) -
getItemProvider
Description copied from interface:Item
Gets theItemProvider
. This method gets called every time aWindow
is notified (Item.notifyWindows()
).- Returns:
- The
ItemProvider
-
handleClick
public void handleClick(@NotNull @NotNull org.bukkit.event.inventory.ClickType clickType, @NotNull @NotNull org.bukkit.entity.Player player, @NotNull @NotNull org.bukkit.event.inventory.InventoryClickEvent event) Description copied from interface:Item
A method called if theItemStack
associated to thisItem
has been clicked by a player.- Parameters:
clickType
- TheClickType
thePlayer
performed.player
- ThePlayer
who clicked on theItemStack
.event
- TheInventoryClickEvent
associated with this click.
-
cycle
public void cycle(boolean forward) -
handleStateChange
protected void handleStateChange(@Nullable @Nullable org.bukkit.entity.Player player, int state) -
getState
public int getState()
-