Package space.maxus.flare.item
Interface ItemProvider
- All Known Implementing Classes:
ItemStackBuilder,ReactiveItemProvider,StillItemProvider
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
A functional interface that is used to represent items within Flare.
Can be used as:
Can be used as:
- A function for custom logic
- A static item (via
still(org.bukkit.inventory.ItemStack)) - A reactive item that depends on a
ReactiveState(viareactive(org.apache.commons.lang3.concurrent.Computable<V, org.bukkit.inventory.ItemStack>))
-
Method Summary
Modifier and TypeMethodDescription@Nullable org.bukkit.inventory.ItemStackprovide()Provides an item stack.static <V> @NotNull ReactiveItemProvider<V>reactive(@NotNull org.apache.commons.lang3.concurrent.Computable<@Nullable V, @Nullable org.bukkit.inventory.ItemStack> provider) Constructs a reactive item provider that returns a stack based on provider.static <V> @NotNull ReactiveItemProvider<V>reactiveBuild(@NotNull org.apache.commons.lang3.concurrent.Computable<@Nullable V, @NotNull ItemStackBuilder> provider) Constructs a reactive item provider that returns a stack based on provider.static @NotNull ItemProviderstill(@NotNull ItemStackBuilder builder) Constructs a static item provider that returns the same stack all the time.static @NotNull ItemProviderstill(@Nullable org.bukkit.inventory.ItemStack stack) Constructs a static item provider that returns the same stack all the time.
-
Method Details
-
still
@Contract("_ -> new") @NotNull static @NotNull ItemProvider still(@Nullable @Nullable org.bukkit.inventory.ItemStack stack) Constructs a static item provider that returns the same stack all the time.- Parameters:
stack- Stack to be used- Returns:
- StillItemProvider
-
still
Constructs a static item provider that returns the same stack all the time.- Parameters:
builder- ItemStack builder to be used- Returns:
- StillItemProvider
-
reactive
@NotNull static <V> @NotNull ReactiveItemProvider<V> reactive(@NotNull @NotNull org.apache.commons.lang3.concurrent.Computable<@Nullable V, @Nullable org.bukkit.inventory.ItemStack> provider) Constructs a reactive item provider that returns a stack based on provider.
NOTE: Requires hooking to aReactiveStatefor actual logic- Type Parameters:
V- Value used inside the ReactiveState- Parameters:
provider- Provider to be used for supplying item- Returns:
- ReactiveItemProvider
- See Also:
-
reactiveBuild
@NotNull static <V> @NotNull ReactiveItemProvider<V> reactiveBuild(@NotNull @NotNull org.apache.commons.lang3.concurrent.Computable<@Nullable V, @NotNull ItemStackBuilder> provider) Constructs a reactive item provider that returns a stack based on provider.
NOTE: Requires hooking to aReactiveStatefor actual logic- Type Parameters:
V- Value used inside the ReactiveState- Parameters:
provider- Provider to be used for supplying item builder- Returns:
- ReactiveItemProvider
- See Also:
-
provide
@Nullable @Nullable org.bukkit.inventory.ItemStack provide()Provides an item stack.- Returns:
- an ItemStack. May be null
-