Class Enchantment

java.lang.Object
org.bukkit.enchantments.Enchantment
Direct Known Subclasses:
EnchantmentWrapper

public abstract class Enchantment extends Object
The various type of enchantments that may be added to armour or weapons
  • Field Details

    • PROTECTION_ENVIRONMENTAL

      public static final Enchantment PROTECTION_ENVIRONMENTAL
      Provides protection against environmental damage
    • PROTECTION_FIRE

      public static final Enchantment PROTECTION_FIRE
      Provides protection against fire damage
    • PROTECTION_FALL

      public static final Enchantment PROTECTION_FALL
      Provides protection against fall damage
    • PROTECTION_EXPLOSIONS

      public static final Enchantment PROTECTION_EXPLOSIONS
      Provides protection against explosive damage
    • PROTECTION_PROJECTILE

      public static final Enchantment PROTECTION_PROJECTILE
      Provides protection against projectile damage
    • OXYGEN

      public static final Enchantment OXYGEN
      Decreases the rate of air loss whilst underwater
    • WATER_WORKER

      public static final Enchantment WATER_WORKER
      Increases the speed at which a player may mine underwater
    • THORNS

      public static final Enchantment THORNS
      Damages the attacker
    • DEPTH_STRIDER

      public static final Enchantment DEPTH_STRIDER
      Increases walking speed while in water
    • DAMAGE_ALL

      public static final Enchantment DAMAGE_ALL
      Increases damage against all targets
    • DAMAGE_UNDEAD

      public static final Enchantment DAMAGE_UNDEAD
      Increases damage against undead targets
    • DAMAGE_ARTHROPODS

      public static final Enchantment DAMAGE_ARTHROPODS
      Increases damage against arthropod targets
    • KNOCKBACK

      public static final Enchantment KNOCKBACK
      All damage to other targets will knock them back when hit
    • FIRE_ASPECT

      public static final Enchantment FIRE_ASPECT
      When attacking a target, has a chance to set them on fire
    • LOOT_BONUS_MOBS

      public static final Enchantment LOOT_BONUS_MOBS
      Provides a chance of gaining extra loot when killing monsters
    • DIG_SPEED

      public static final Enchantment DIG_SPEED
      Increases the rate at which you mine/dig
    • SILK_TOUCH

      public static final Enchantment SILK_TOUCH
      Allows blocks to drop themselves instead of fragments (for example, stone instead of cobblestone)
    • DURABILITY

      public static final Enchantment DURABILITY
      Decreases the rate at which a tool looses durability
    • LOOT_BONUS_BLOCKS

      public static final Enchantment LOOT_BONUS_BLOCKS
      Provides a chance of gaining extra loot when destroying blocks
    • ARROW_DAMAGE

      public static final Enchantment ARROW_DAMAGE
      Provides extra damage when shooting arrows from bows
    • ARROW_KNOCKBACK

      public static final Enchantment ARROW_KNOCKBACK
      Provides a knockback when an entity is hit by an arrow from a bow
    • ARROW_FIRE

      public static final Enchantment ARROW_FIRE
      Sets entities on fire when hit by arrows shot from a bow
    • ARROW_INFINITE

      public static final Enchantment ARROW_INFINITE
      Provides infinite arrows when shooting a bow
    • LUCK

      public static final Enchantment LUCK
      Decreases odds of catching worthless junk
    • LURE

      public static final Enchantment LURE
      Increases rate of fish biting your hook
  • Constructor Details

    • Enchantment

      public Enchantment(int id)
  • Method Details

    • getId

      @Deprecated public int getId()
      Deprecated.
      Magic value
      Gets the unique ID of this enchantment
      Returns:
      Unique ID
    • getName

      public abstract String getName()
      Gets the unique name of this enchantment
      Returns:
      Unique name
    • getMaxLevel

      public abstract int getMaxLevel()
      Gets the maximum level that this Enchantment may become.
      Returns:
      Maximum level of the Enchantment
    • getStartLevel

      public abstract int getStartLevel()
      Gets the level that this Enchantment should start at
      Returns:
      Starting level of the Enchantment
    • getItemTarget

      public abstract EnchantmentTarget getItemTarget()
      Gets the type of ItemStack that may fit this Enchantment.
      Returns:
      Target type of the Enchantment
    • conflictsWith

      public abstract boolean conflictsWith(Enchantment other)
      Check if this enchantment conflicts with another enchantment.
      Parameters:
      other - The enchantment to check against
      Returns:
      True if there is a conflict.
    • canEnchantItem

      public abstract boolean canEnchantItem(ItemStack item)
      Checks if this Enchantment may be applied to the given ItemStack.

      This does not check if it conflicts with any enchantments already applied to the item.

      Parameters:
      item - Item to test
      Returns:
      True if the enchantment may be applied, otherwise False
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

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

      public String toString()
      Overrides:
      toString in class Object
    • registerEnchantment

      public static void registerEnchantment(Enchantment enchantment)
      Registers an enchantment with the given ID and object.

      Generally not to be used from within a plugin.

      Parameters:
      enchantment - Enchantment to register
    • isAcceptingRegistrations

      public static boolean isAcceptingRegistrations()
      Checks if this is accepting Enchantment registrations.
      Returns:
      True if the server Implementation may add enchantments
    • stopAcceptingRegistrations

      public static void stopAcceptingRegistrations()
      Stops accepting any enchantment registrations
    • getById

      @Deprecated public static Enchantment getById(int id)
      Deprecated.
      Magic value
      Gets the Enchantment at the specified ID
      Parameters:
      id - ID to fetch
      Returns:
      Resulting Enchantment, or null if not found
    • getByName

      public static Enchantment getByName(String name)
      Gets the Enchantment at the specified name
      Parameters:
      name - Name to fetch
      Returns:
      Resulting Enchantment, or null if not found
    • values

      public static Enchantment[] values()
      Gets an array of all the registered Enchantments
      Returns:
      Array of enchantments