Class EnchantmentOffer

java.lang.Object
org.bukkit.enchantments.EnchantmentOffer

@NullMarked public class EnchantmentOffer extends Object
A class for the available enchantment offers in the enchantment table.
  • Constructor Details

    • EnchantmentOffer

      public EnchantmentOffer(Enchantment enchantment, int enchantmentLevel, int cost)
  • Method Details

    • getEnchantment

      public Enchantment getEnchantment()
      Get the type of the enchantment.
      Returns:
      type of enchantment
    • setEnchantment

      public void setEnchantment(Enchantment enchantment)
      Sets the type of the enchantment.
      Parameters:
      enchantment - type of the enchantment
    • getEnchantmentLevel

      public int getEnchantmentLevel()
      Gets the level of the enchantment.
      Returns:
      level of the enchantment
    • setEnchantmentLevel

      public void setEnchantmentLevel(@Positive int enchantmentLevel)
      Sets the level of the enchantment.
      Parameters:
      enchantmentLevel - level of the enchantment
    • getCost

      public int getCost()
      Gets the cost (minimum level) which is displayed as a number on the right hand side of the enchantment offer.
      Returns:
      cost for this enchantment
    • setCost

      public void setCost(@Positive int cost)
      Sets the cost (minimum level) which is displayed as a number on the right hand side of the enchantment offer.
      Parameters:
      cost - cost for this enchantment
    • equals

      public boolean equals(@Nullable Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • rollEnchantmentOffers

      public static @Nullable EnchantmentOffer[] rollEnchantmentOffers(ItemStack targetStack, int seed, int bookshelfCount, int offerAmount)
      Rolls a new set of enchantment offers based on a target item stack, a seed and a bookshelf count.
      Parameters:
      targetStack - the itemstack for which the enchantment offers are rolled.
      seed - the seed used for random selection of enchantments. Mirrors EnchantmentView.getEnchantmentSeed().
      bookshelfCount - the number of virtual bookshelves to consider when rolling the enchantments.
      offerAmount - the amount of enchantment offers to roll.
      Returns:
      an array of enchantment offers with size offerAmount.