Package org.bukkit.enchantments

# Class EnchantmentWrapper

java.lang.Object
org.bukkit.enchantments.Enchantment
org.bukkit.enchantments.EnchantmentWrapper

All Implemented Interfaces:
  `net.kyori.adventure.key.Keyed`, `Translatable`, `Keyed`

public class EnchantmentWrapper extends Enchantment
A simple wrapper for ease of selecting `Enchantment`s

## Field Summary

### Fields inherited from class org.bukkit.enchantments.Enchantment

`ARROW_DAMAGE, ARROW_FIRE, ARROW_INFINITE, ARROW_KNOCKBACK, BINDING_CURSE, CHANNELING, DAMAGE_ALL, DAMAGE_ARTHROPODS, DAMAGE_UNDEAD, DEPTH_STRIDER, DIG_SPEED, DURABILITY, FIRE_ASPECT, FROST_WALKER, IMPALING, KNOCKBACK, LOOT_BONUS_BLOCKS, LOOT_BONUS_MOBS, LOYALTY, LUCK, LURE, MENDING, MULTISHOT, OXYGEN, PIERCING, PROTECTION_ENVIRONMENTAL, PROTECTION_EXPLOSIONS, PROTECTION_FALL, PROTECTION_FIRE, PROTECTION_PROJECTILE, QUICK_CHARGE, RIPTIDE, SILK_TOUCH, SOUL_SPEED, SWEEPING_EDGE, SWIFT_SNEAK, THORNS, VANISHING_CURSE, WATER_WORKER`

## Constructor Summary

Constructors
Constructor
Description
`EnchantmentWrapper(@NotNull String name)`

## Method Summary

Modifier and Type
Method
Description
`boolean`
`canEnchantItem(@NotNull ItemStack item)`
Checks if this Enchantment may be applied to the given `ItemStack`.
`boolean`
`conflictsWith(@NotNull Enchantment other)`
Check if this enchantment conflicts with another enchantment.
`Component`
`displayName(int level)`
Get the name of the enchantment with its applied level.
`Set<EquipmentSlot>`
`getActiveSlots()`
Gets the equipment slots where this enchantment is considered "active".
`float`
`getDamageIncrease(int level, EntityCategory entityCategory)`
Gets the damage increase as a result of the level and entity category specified
`@NotNull Enchantment`
`getEnchantment()`
Gets the enchantment bound to this wrapper
`@NotNull EnchantmentTarget`
`getItemTarget()`
Gets the type of `ItemStack` that may fit this Enchantment.
`int`
`getMaxLevel()`
Gets the maximum level that this Enchantment may become.
`@NotNull String`
`getName()`
Gets the unique name of this enchantment
`EnchantmentRarity`
`getRarity()`
Gets the rarity of this enchantment.
`int`
`getStartLevel()`
Gets the level that this Enchantment should start at
`boolean`
`isCursed()`
Checks if this enchantment is a cursed enchantment
Cursed enchantments are found the same way treasure enchantments are
`boolean`
`isDiscoverable()`
Checks if this enchantment can be found in an enchanting table or use to enchant items generated by loot tables.
`boolean`
`isTradeable()`
Checks if this enchantment can be found in villager trades.
`boolean`
`isTreasure()`
Checks if this enchantment is a treasure enchantment.
`@NotNull String`
`translationKey()`
Gets the translation key.

### Methods inherited from class org.bukkit.enchantments.Enchantment

`equals, getByKey, getByName, getKey, hashCode, isAcceptingRegistrations, registerEnchantment, stopAcceptingRegistrations, toString, values`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.bukkit.Keyed

`key`

## Constructor Details

### EnchantmentWrapper

public EnchantmentWrapper(@NotNull @NotNull String name)

## Method Details

### getEnchantment

@NotNull public @NotNull Enchantment getEnchantment()
Gets the enchantment bound to this wrapper

Returns:
  Enchantment

### getMaxLevel

public int getMaxLevel()
Description copied from class: `Enchantment`
Gets the maximum level that this Enchantment may become.

Specified by:
  `getMaxLevel` in class `Enchantment`
Returns:
  Maximum level of the Enchantment

### getStartLevel

public int getStartLevel()
Description copied from class: `Enchantment`
Gets the level that this Enchantment should start at

Specified by:
  `getStartLevel` in class `Enchantment`
Returns:
  Starting level of the Enchantment

### getItemTarget

@NotNull public @NotNull EnchantmentTarget getItemTarget()
Description copied from class: `Enchantment`
Gets the type of `ItemStack` that may fit this Enchantment.

Specified by:
  `getItemTarget` in class `Enchantment`
Returns:
  Target type of the Enchantment

### canEnchantItem

public boolean canEnchantItem(@NotNull @NotNull ItemStack item)
Description copied from class: `Enchantment`
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.

Specified by:
  `canEnchantItem` in class `Enchantment`
Parameters:
  `item` - Item to test
Returns:
  True if the enchantment may be applied, otherwise False

### getName

@NotNull public @NotNull String getName()
Description copied from class: `Enchantment`
Gets the unique name of this enchantment

Specified by:
  `getName` in class `Enchantment`
Returns:
  Unique name

### isTreasure

public boolean isTreasure()
Description copied from class: `Enchantment`
Checks if this enchantment is a treasure enchantment.
Treasure enchantments can only be received via looting, trading, or fishing.

Specified by:
  `isTreasure` in class `Enchantment`
Returns:
  true if the enchantment is a treasure enchantment

### isCursed

public boolean isCursed()
Description copied from class: `Enchantment`
Checks if this enchantment is a cursed enchantment
Cursed enchantments are found the same way treasure enchantments are

Specified by:
  `isCursed` in class `Enchantment`
Returns:
  true if the enchantment is cursed

### conflictsWith

public boolean conflictsWith(@NotNull @NotNull Enchantment other)
Description copied from class: `Enchantment`
Check if this enchantment conflicts with another enchantment.

Specified by:
  `conflictsWith` in class `Enchantment`
Parameters:
  `other` - The enchantment to check against
Returns:
  True if there is a conflict.

### displayName

@NotNull public Component displayName(int level)
Description copied from class: `Enchantment`
Get the name of the enchantment with its applied level.

If the given `level` is either less than the `Enchantment.getStartLevel()` or greater than the `Enchantment.getMaxLevel()`, the level may not be shown in the numeral format one may otherwise expect.

Specified by:
  `displayName` in class `Enchantment`
Parameters:
  `level` - the level of the enchantment to show
Returns:
  the name of the enchantment with `level` applied

### translationKey

@NotNull public @NotNull String translationKey()
Description copied from interface: `net.kyori.adventure.translation.Translatable`
Gets the translation key.

Returns:
  the translation key

### isTradeable

public boolean isTradeable()
Description copied from class: `Enchantment`
Checks if this enchantment can be found in villager trades.

Specified by:
  `isTradeable` in class `Enchantment`
Returns:
  true if the enchantment can be found in trades

### isDiscoverable

public boolean isDiscoverable()
Description copied from class: `Enchantment`
Checks if this enchantment can be found in an enchanting table or use to enchant items generated by loot tables.

Specified by:
  `isDiscoverable` in class `Enchantment`
Returns:
  true if the enchantment can be found in a table or by loot tables

### getRarity

@NotNull public EnchantmentRarity getRarity()
Description copied from class: `Enchantment`
Gets the rarity of this enchantment.

Specified by:
  `getRarity` in class `Enchantment`
Returns:
  the rarity

### getDamageIncrease

public float getDamageIncrease(int level, @NotNull EntityCategory entityCategory)
Description copied from class: `Enchantment`
Gets the damage increase as a result of the level and entity category specified

Specified by:
  `getDamageIncrease` in class `Enchantment`
Parameters:
  `level` - the level of enchantment
  `entityCategory` - the category of entity
Returns:
  the damage increase

### getActiveSlots

@NotNull public Set<EquipmentSlot> getActiveSlots()
Description copied from class: `Enchantment`
Gets the equipment slots where this enchantment is considered "active".

Specified by:
  `getActiveSlots` in class `Enchantment`
Returns:
  the equipment slots