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 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 Type
    Method
    Description
    void
    addUnsafeEnchantment(org.bukkit.enchantments.Enchantment ench, int level)
     
    org.bukkit.inventory.ItemStack
     
    boolean
     
    forceWrap(org.bukkit.inventory.ItemStack itemStack)
    Creates an ItemStackWrapper of an ItemStack.
    int
     
    org.bukkit.inventory.meta.ItemMeta
     
    int
     
    boolean
     
    void
    setAmount(int amount)
     
    boolean
    setItemMeta(org.bukkit.inventory.meta.ItemMeta itemMeta)
     
    void
    setType(org.bukkit.Material type)
     
    wrap(org.bukkit.inventory.ItemStack itemStack)
    Creates an ItemStackWrapper of an ItemStack.
    wrapArray(org.bukkit.inventory.ItemStack[] items)
    This creates an ItemStackWrapper array from a given ItemStack array.
    wrapList(List<org.bukkit.inventory.ItemStack> items)
    This creates an ItemStackWrapper List from a given ItemStack List *

    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 class org.bukkit.inventory.ItemStack
    • getItemMeta

      public org.bukkit.inventory.meta.ItemMeta getItemMeta()
      Overrides:
      getItemMeta in class org.bukkit.inventory.ItemStack
    • getAmount

      public int getAmount()
      Overrides:
      getAmount in class org.bukkit.inventory.ItemStack
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class org.bukkit.inventory.ItemStack
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class org.bukkit.inventory.ItemStack
    • clone

      public org.bukkit.inventory.ItemStack clone()
      Overrides:
      clone in class org.bukkit.inventory.ItemStack
    • setType

      public void setType(org.bukkit.Material type)
      Overrides:
      setType in class org.bukkit.inventory.ItemStack
    • setAmount

      public void setAmount(int amount)
      Overrides:
      setAmount in class org.bukkit.inventory.ItemStack
    • setItemMeta

      public boolean setItemMeta(org.bukkit.inventory.meta.ItemMeta itemMeta)
      Overrides:
      setItemMeta in class org.bukkit.inventory.ItemStack
    • addUnsafeEnchantment

      public void addUnsafeEnchantment(org.bukkit.enchantments.Enchantment ench, int level)
      Overrides:
      addUnsafeEnchantment in class org.bukkit.inventory.ItemStack
    • forceWrap

      @Nonnull public static ItemStackWrapper forceWrap(@Nonnull org.bukkit.inventory.ItemStack itemStack)
      Creates an ItemStackWrapper of an ItemStack. This method will not check if the passed ItemStack has already been wrapped
      Parameters:
      itemStack - The ItemStack to wrap
      Returns:
      Returns an ItemStackWrapper of the passed ItemStack
      See Also:
    • wrap

      @Nonnull public static ItemStackWrapper wrap(@Nonnull org.bukkit.inventory.ItemStack itemStack)
      Creates an ItemStackWrapper of an ItemStack. This method will return the the casted reference of the passed ItemStack if it is already an ItemStackWrapper
      Parameters:
      itemStack - The ItemStack to wrap
      Returns:
      Returns an ItemStackWrapper of the passed ItemStack
      See Also:
    • wrapArray

      @Nonnull public static ItemStackWrapper[] wrapArray(@Nonnull org.bukkit.inventory.ItemStack[] items)
      This creates an ItemStackWrapper array from a given ItemStack array.
      Parameters:
      items - The array of ItemStacks to transform
      Returns:
      An ItemStackWrapper array
    • wrapList

      @Nonnull public static List<ItemStackWrapper> wrapList(@Nonnull List<org.bukkit.inventory.ItemStack> items)
      This creates an ItemStackWrapper List from a given ItemStack List *
      Parameters:
      items - The List of ItemStacks to transform
      Returns:
      An ItemStackWrapper array