Class ItemStackWrapper
java.lang.Object
org.bukkit.inventory.ItemStack
io.github.thebusybiscuit.slimefun4.utils.itemstack.ItemStackWrapper
- All Implemented Interfaces:
io.papermc.paper.persistence.PersistentDataViewHolder
,Cloneable
,net.kyori.adventure.text.event.HoverEventSource<net.kyori.adventure.text.event.HoverEvent.ShowItem>
,net.kyori.adventure.translation.Translatable
,org.bukkit.configuration.serialization.ConfigurationSerializable
,org.bukkit.Translatable
public final class ItemStackWrapper
extends org.bukkit.inventory.ItemStack
This
Please be very careful when using this.
ItemStack
, which is not intended for actual usage, caches its ItemMeta
.
This significantly speeds up any ItemStack
comparisons a lot.
You cannot invoke equals(Object)
, hashCode()
or any of its setter on an
ItemStackWrapper
.Please be very careful when using this.
- Author:
- TheBusyBiscuit, md5sha256
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addUnsafeEnchantment
(org.bukkit.enchantments.Enchantment ench, int level) org.bukkit.inventory.ItemStack
clone()
boolean
static ItemStackWrapper
forceWrap
(org.bukkit.inventory.ItemStack itemStack) Creates anItemStackWrapper
of anItemStack
.int
org.bukkit.inventory.meta.ItemMeta
int
hashCode()
boolean
void
setAmount
(int amount) boolean
setItemMeta
(org.bukkit.inventory.meta.ItemMeta itemMeta) void
setType
(org.bukkit.Material type) static ItemStackWrapper
wrap
(org.bukkit.inventory.ItemStack itemStack) Creates anItemStackWrapper
of anItemStack
.static ItemStackWrapper[]
wrapArray
(org.bukkit.inventory.ItemStack[] items) This creates anItemStackWrapper
array from a givenItemStack
array.static List
<ItemStackWrapper> Methods inherited from class org.bukkit.inventory.ItemStack
add, add, addEnchantment, addEnchantments, addItemFlags, addUnsafeEnchantments, asHoverEvent, asOne, asQuantity, canRepair, computeTooltipLines, containsEnchantment, copyDataFrom, damage, deserialize, deserializeBytes, deserializeItemsFromBytes, displayName, editMeta, editMeta, editPersistentDataContainer, effectiveName, empty, enchantWithLevels, enchantWithLevels, ensureServerConversions, getData, getData, getDataOrDefault, getDataTypes, getDurability, getEnchantmentLevel, getEnchantments, getI18NDisplayName, getItemFlags, getLore, getMaxItemUseDuration, getMaxItemUseDuration, getMaxStackSize, getPersistentDataContainer, getRarity, getTranslationKey, getType, hasData, hasItemFlag, isDataOverridden, isEmpty, isRepairableBy, isSimilar, lore, lore, matchesWithoutData, matchesWithoutData, of, of, removeEnchantment, removeEnchantments, removeItemFlags, resetData, serialize, serializeAsBytes, serializeItemsAsBytes, serializeItemsAsBytes, setData, setData, setData, setData, setDurability, setLore, subtract, subtract, toString, translationKey, unsetData, withType
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.kyori.adventure.text.event.HoverEventSource
asHoverEvent
-
Method Details
-
hasItemMeta
public boolean hasItemMeta()- Overrides:
hasItemMeta
in classorg.bukkit.inventory.ItemStack
-
getItemMeta
public org.bukkit.inventory.meta.ItemMeta getItemMeta()- Overrides:
getItemMeta
in classorg.bukkit.inventory.ItemStack
-
getAmount
public int getAmount()- Overrides:
getAmount
in classorg.bukkit.inventory.ItemStack
-
equals
- Overrides:
equals
in classorg.bukkit.inventory.ItemStack
-
hashCode
public int hashCode()- Overrides:
hashCode
in classorg.bukkit.inventory.ItemStack
-
clone
public org.bukkit.inventory.ItemStack clone()- Overrides:
clone
in classorg.bukkit.inventory.ItemStack
-
setType
public void setType(org.bukkit.Material type) - Overrides:
setType
in classorg.bukkit.inventory.ItemStack
-
setAmount
public void setAmount(int amount) - Overrides:
setAmount
in classorg.bukkit.inventory.ItemStack
-
setItemMeta
public boolean setItemMeta(org.bukkit.inventory.meta.ItemMeta itemMeta) - Overrides:
setItemMeta
in classorg.bukkit.inventory.ItemStack
-
addUnsafeEnchantment
public void addUnsafeEnchantment(org.bukkit.enchantments.Enchantment ench, int level) - Overrides:
addUnsafeEnchantment
in classorg.bukkit.inventory.ItemStack
-
forceWrap
@Nonnull public static ItemStackWrapper forceWrap(@Nonnull org.bukkit.inventory.ItemStack itemStack) Creates anItemStackWrapper
of anItemStack
. This method will not check if the passedItemStack
has already been wrapped- Parameters:
itemStack
- TheItemStack
to wrap- Returns:
- Returns an
ItemStackWrapper
of the passedItemStack
- See Also:
-
wrap
Creates anItemStackWrapper
of anItemStack
. This method will return the the casted reference of the passedItemStack
if it is already anItemStackWrapper
- Parameters:
itemStack
- TheItemStack
to wrap- Returns:
- Returns an
ItemStackWrapper
of the passedItemStack
- See Also:
-
wrapArray
@Nonnull public static ItemStackWrapper[] wrapArray(@Nonnull org.bukkit.inventory.ItemStack[] items) This creates anItemStackWrapper
array from a givenItemStack
array.- Parameters:
items
- The array ofItemStacks
to transform- Returns:
- An
ItemStackWrapper
array
-
wrapList
@Nonnull public static List<ItemStackWrapper> wrapList(@Nonnull List<org.bukkit.inventory.ItemStack> items) - Parameters:
items
- TheList
ofItemStacks
to transform- Returns:
- An
ItemStackWrapper
array
-