AsyncItemProvider

class AsyncItemProvider(val placeholder: ItemStack, providerFuture: CompletableFuture<AbstractItemProvider>) : AbstractItemProvider

An ItemProvider that can be used when the item is not immediately available, such as when it needs to be loaded from a database or generated asynchronously. It will display a placeholder item until the actual item is available.

Parameters

placeholder

The item to display while the actual item is being loaded.

providerFuture

A future that will complete with the actual item provider once it is available

Constructors

Link copied to clipboard
constructor(placeholder: ItemStack, providerFuture: CompletableFuture<AbstractItemProvider>)

Properties

Link copied to clipboard
val placeholder: ItemStack
Link copied to clipboard

The resolved item provider once the future is complete. Will be null until the future completes.

Functions

Link copied to clipboard
open fun destroy()

Cleans up any resources or references when this item provider is removed from the GUI. Subclasses can override this method to perform any necessary cleanup, such as canceling tasks or clearing references.

Link copied to clipboard
open override fun getItem(): ItemStack?

Returns the ItemStack to be displayed for this item provider. This method must be implemented by subclasses to provide the actual item to display.

Link copied to clipboard
open override fun onClick(clickEvent: InventoryClickEvent)

Handles click events for this item provider. This method must be implemented by subclasses to define the behavior when the item is clicked in the GUI.

Link copied to clipboard
fun refresh()

Refreshes the item in the GUI. This method can be called by subclasses to update the displayed item after changes. It checks if the GUI reference is initialized and if the inventory slot is valid before attempting to refresh.

Link copied to clipboard
fun setGuiData(gui: Gui, slot: Int)

Sets the GUI reference and inventory slot for this item provider. This should be called by the GUI when adding this item provider to it.