Class BukkitItemComponentBuilder

java.lang.Object
me.devnatan.inventoryframework.component.BukkitItemComponentBuilder
All Implemented Interfaces:
me.devnatan.inventoryframework.component.ComponentBuilder<BukkitItemComponentBuilder,Context>, me.devnatan.inventoryframework.component.ComponentFactory, me.devnatan.inventoryframework.component.ItemComponentBuilder<BukkitItemComponentBuilder,Context>

public final class BukkitItemComponentBuilder extends Object implements me.devnatan.inventoryframework.component.ItemComponentBuilder<BukkitItemComponentBuilder,Context>, me.devnatan.inventoryframework.component.ComponentFactory
  • Field Details

    • reference

      protected me.devnatan.inventoryframework.Ref<me.devnatan.inventoryframework.component.Component> reference
    • data

      protected Map<String,Object> data
    • cancelOnClick

      protected boolean cancelOnClick
    • closeOnClick

      protected boolean closeOnClick
    • updateOnClick

      protected boolean updateOnClick
    • watchingStates

      protected Set<me.devnatan.inventoryframework.state.State<?>> watchingStates
    • isManagedExternally

      protected boolean isManagedExternally
    • displayCondition

      protected Predicate<Context> displayCondition
  • Constructor Details

    • BukkitItemComponentBuilder

      public BukkitItemComponentBuilder(me.devnatan.inventoryframework.VirtualView root)
  • Method Details

    • toString

      public String toString()
      Overrides:
      toString in class Object
    • isContainedWithin

      public boolean isContainedWithin(int position)
      Specified by:
      isContainedWithin in interface me.devnatan.inventoryframework.component.ItemComponentBuilder<BukkitItemComponentBuilder,Context>
    • withSlot

      public BukkitItemComponentBuilder withSlot(int slot)
      Specified by:
      withSlot in interface me.devnatan.inventoryframework.component.ItemComponentBuilder<BukkitItemComponentBuilder,Context>
    • withSlot

      public BukkitItemComponentBuilder withSlot(int row, int column)
      Specified by:
      withSlot in interface me.devnatan.inventoryframework.component.ItemComponentBuilder<BukkitItemComponentBuilder,Context>
    • withItem

      public BukkitItemComponentBuilder withItem(@Nullable @Nullable org.bukkit.inventory.ItemStack item)
      Defines the item that will be used as fallback for rendering in the slot where this item is positioned. The fallback item is always static.
      Parameters:
      item - The new fallback item stack.
      Returns:
      This item builder.
    • onRender

      public BukkitItemComponentBuilder onRender(@Nullable @Nullable Consumer<? super SlotRenderContext> renderHandler)
      Called when the item is rendered.

      This handler is called every time the item or the view that owns it is updated.

      Parameters:
      renderHandler - The render handler.
      Returns:
      This item builder.
    • renderWith

      public BukkitItemComponentBuilder renderWith(@NotNull @NotNull Supplier<@Nullable org.bukkit.inventory.ItemStack> renderFactory)
      Dynamic rendering of a specific item.

      This handler is called every time the item or the view that owns it is updated.

      Parameters:
      renderFactory - The render handler.
      Returns:
      This item builder.
    • onClick

      public BukkitItemComponentBuilder onClick(@Nullable @Nullable Consumer<? super SlotClickContext> clickHandler)
      Called when a player clicks on the item.

      This handler works on any container that the actor has access to and only works if the interaction has not been cancelled.

      Parameters:
      clickHandler - The click handler.
      Returns:
      This item builder.
    • onClick

      public BukkitItemComponentBuilder onClick(@Nullable @Nullable Runnable clickHandler)
      Called when a player clicks on the item.

      This handler works on any container that the actor has access to and only works if the interaction has not been cancelled.

      Parameters:
      clickHandler - The click handler.
      Returns:
      This item builder.
    • onUpdate

      public BukkitItemComponentBuilder onUpdate(@Nullable @Nullable Consumer<? super SlotContext> updateHandler)
      Called when the item is updated.
      Parameters:
      updateHandler - The update handler.
      Returns:
      This item builder.
    • create

      @NotNull public @NotNull me.devnatan.inventoryframework.component.Component create()
      Specified by:
      create in interface me.devnatan.inventoryframework.component.ComponentFactory
    • copy

      Specified by:
      copy in interface me.devnatan.inventoryframework.component.ComponentBuilder<BukkitItemComponentBuilder,Context>
    • referencedBy

      public BukkitItemComponentBuilder referencedBy(@NotNull me.devnatan.inventoryframework.Ref<me.devnatan.inventoryframework.component.Component> arg0)
      Specified by:
      referencedBy in interface me.devnatan.inventoryframework.component.ComponentBuilder<S extends me.devnatan.inventoryframework.component.ComponentBuilder<S,C>,C extends me.devnatan.inventoryframework.context.IFContext>
    • withData

      public BukkitItemComponentBuilder withData(@NotNull String arg0, Object arg1)
      Specified by:
      withData in interface me.devnatan.inventoryframework.component.ComponentBuilder<S extends me.devnatan.inventoryframework.component.ComponentBuilder<S,C>,C extends me.devnatan.inventoryframework.context.IFContext>
    • cancelOnClick

      public BukkitItemComponentBuilder cancelOnClick()
      Specified by:
      cancelOnClick in interface me.devnatan.inventoryframework.component.ComponentBuilder<S extends me.devnatan.inventoryframework.component.ComponentBuilder<S,C>,C extends me.devnatan.inventoryframework.context.IFContext>
    • closeOnClick

      public BukkitItemComponentBuilder closeOnClick()
      Specified by:
      closeOnClick in interface me.devnatan.inventoryframework.component.ComponentBuilder<S extends me.devnatan.inventoryframework.component.ComponentBuilder<S,C>,C extends me.devnatan.inventoryframework.context.IFContext>
    • updateOnClick

      public BukkitItemComponentBuilder updateOnClick()
      Specified by:
      updateOnClick in interface me.devnatan.inventoryframework.component.ComponentBuilder<S extends me.devnatan.inventoryframework.component.ComponentBuilder<S,C>,C extends me.devnatan.inventoryframework.context.IFContext>
    • watch

      public BukkitItemComponentBuilder watch(me.devnatan.inventoryframework.state.State<?>... arg0)
      Specified by:
      watch in interface me.devnatan.inventoryframework.component.ComponentBuilder<S extends me.devnatan.inventoryframework.component.ComponentBuilder<S,C>,C extends me.devnatan.inventoryframework.context.IFContext>
    • updateOnStateChange

      public BukkitItemComponentBuilder updateOnStateChange(@NotNull me.devnatan.inventoryframework.state.State<?> arg0)
      Specified by:
      updateOnStateChange in interface me.devnatan.inventoryframework.component.ComponentBuilder<S extends me.devnatan.inventoryframework.component.ComponentBuilder<S,C>,C extends me.devnatan.inventoryframework.context.IFContext>
    • updateOnStateChange

      public BukkitItemComponentBuilder updateOnStateChange(@NotNull me.devnatan.inventoryframework.state.State<?> arg0, me.devnatan.inventoryframework.state.State<?>... arg1)
      Specified by:
      updateOnStateChange in interface me.devnatan.inventoryframework.component.ComponentBuilder<S extends me.devnatan.inventoryframework.component.ComponentBuilder<S,C>,C extends me.devnatan.inventoryframework.context.IFContext>
    • withExternallyManaged

      public BukkitItemComponentBuilder withExternallyManaged(boolean arg0)
      Specified by:
      withExternallyManaged in interface me.devnatan.inventoryframework.component.ComponentBuilder<S extends me.devnatan.inventoryframework.component.ComponentBuilder<S,C>,C extends me.devnatan.inventoryframework.context.IFContext>
    • displayIf

      Specified by:
      displayIf in interface me.devnatan.inventoryframework.component.ComponentBuilder<S extends me.devnatan.inventoryframework.component.ComponentBuilder<S,C>,C extends me.devnatan.inventoryframework.context.IFContext>
    • displayIf

      public BukkitItemComponentBuilder displayIf(Predicate<Context> arg0)
      Specified by:
      displayIf in interface me.devnatan.inventoryframework.component.ComponentBuilder<S extends me.devnatan.inventoryframework.component.ComponentBuilder<S,C>,C extends me.devnatan.inventoryframework.context.IFContext>
    • hideIf

      Specified by:
      hideIf in interface me.devnatan.inventoryframework.component.ComponentBuilder<S extends me.devnatan.inventoryframework.component.ComponentBuilder<S,C>,C extends me.devnatan.inventoryframework.context.IFContext>
    • hideIf

      Specified by:
      hideIf in interface me.devnatan.inventoryframework.component.ComponentBuilder<S extends me.devnatan.inventoryframework.component.ComponentBuilder<S,C>,C extends me.devnatan.inventoryframework.context.IFContext>