Package org.bukkit.enchantments
Class Enchantment
java.lang.Object
org.bukkit.enchantments.Enchantment
- All Implemented Interfaces:
Keyed
- Direct Known Subclasses:
EnchantmentWrapper
The various type of enchantments that may be added to armour or weapons
-
Field Summary
Modifier and TypeFieldDescriptionstatic Enchantment
Provides extra damage when shooting arrows from bowsstatic Enchantment
Sets entities on fire when hit by arrows shot from a bowstatic Enchantment
Provides infinite arrows when shooting a bowstatic Enchantment
Provides a knockback when an entity is hit by an arrow from a bowstatic Enchantment
Item cannot be removedstatic Enchantment
Strikes lightning when a mob is hit with a trident if conditions are stormystatic Enchantment
Increases damage against all targetsstatic Enchantment
Increases damage against arthropod targetsstatic Enchantment
Increases damage against undead targetsstatic Enchantment
Increases walking speed while in waterstatic Enchantment
Increases the rate at which you mine/digstatic Enchantment
Decreases the rate at which a tool looses durabilitystatic Enchantment
When attacking a target, has a chance to set them on firestatic Enchantment
Freezes any still water adjacent to ice / frost which player is walking onstatic Enchantment
Deals more damage to mobs that live in the oceanstatic Enchantment
All damage to other targets will knock them back when hitstatic Enchantment
Provides a chance of gaining extra loot when destroying blocksstatic Enchantment
Provides a chance of gaining extra loot when killing monstersstatic Enchantment
Causes a thrown trident to return to the player who threw itstatic Enchantment
Decreases odds of catching worthless junkstatic Enchantment
Increases rate of fish biting your hookstatic Enchantment
Allows mending the item using experience orbsstatic Enchantment
Shoot multiple arrows from crossbowsstatic Enchantment
Decreases the rate of air loss whilst underwaterstatic Enchantment
Crossbow projectiles pierce entitiesstatic Enchantment
Provides protection against environmental damagestatic Enchantment
Provides protection against explosive damagestatic Enchantment
Provides protection against fall damagestatic Enchantment
Provides protection against fire damagestatic Enchantment
Provides protection against projectile damagestatic Enchantment
Charges crossbows quicklystatic Enchantment
When it is rainy, launches the player in the direction their trident is thrownstatic Enchantment
Allows blocks to drop themselves instead of fragments (for example, stone instead of cobblestone)static Enchantment
Walk quicker on soul blocksstatic Enchantment
Increases damage against targets when using a sweep attackstatic Enchantment
Damages the attackerstatic Enchantment
Item disappears instead of droppingstatic Enchantment
Increases the speed at which a player may mine underwater -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract boolean
canEnchantItem(@NotNull ItemStack item)
Checks if this Enchantment may be applied to the givenItemStack
.abstract boolean
conflictsWith(@NotNull Enchantment other)
Check if this enchantment conflicts with another enchantment.abstract net.kyori.adventure.text.Component
displayName(int level)
Get the name of the enchantment with its applied level.boolean
abstract Set<EquipmentSlot>
Gets the equipment slots where this enchantment is considered "active".static @Nullable Enchantment
getByKey(@Nullable NamespacedKey key)
Gets the Enchantment at the specified keystatic @Nullable Enchantment
Deprecated.abstract float
getDamageIncrease(int level, EntityCategory entityCategory)
Gets the damage increase as a result of the level and entity category specifiedabstract @NotNull EnchantmentTarget
Gets the type ofItemStack
that may fit this Enchantment.getKey()
Return the namespaced identifier for this object.abstract int
Gets the maximum level that this Enchantment may become.getName()
Deprecated.enchantments are badly named, usegetKey()
.abstract EnchantmentRarity
Gets the rarity of this enchantment.abstract int
Gets the level that this Enchantment should start atint
hashCode()
static boolean
Checks if this is accepting Enchantment registrations.abstract boolean
isCursed()
Deprecated.cursed enchantments are no longer special.abstract boolean
Checks if this enchantment can be found in an enchanting table or use to enchant items generated by loot tables.abstract boolean
Checks if this enchantment can be found in villager trades.abstract boolean
Checks if this enchantment is a treasure enchantment.static void
registerEnchantment(@NotNull Enchantment enchantment)
Registers an enchantment with the given ID and object.static void
Stops accepting any enchantment registrationstoString()
static @NotNull Enchantment[]
values()
Gets an array of all the registeredEnchantment
s
-
Field Details
-
PROTECTION_ENVIRONMENTAL
Provides protection against environmental damage -
PROTECTION_FIRE
Provides protection against fire damage -
PROTECTION_FALL
Provides protection against fall damage -
PROTECTION_EXPLOSIONS
Provides protection against explosive damage -
PROTECTION_PROJECTILE
Provides protection against projectile damage -
OXYGEN
Decreases the rate of air loss whilst underwater -
WATER_WORKER
Increases the speed at which a player may mine underwater -
THORNS
Damages the attacker -
DEPTH_STRIDER
Increases walking speed while in water -
FROST_WALKER
Freezes any still water adjacent to ice / frost which player is walking on -
BINDING_CURSE
Item cannot be removed -
DAMAGE_ALL
Increases damage against all targets -
DAMAGE_UNDEAD
Increases damage against undead targets -
DAMAGE_ARTHROPODS
Increases damage against arthropod targets -
KNOCKBACK
All damage to other targets will knock them back when hit -
FIRE_ASPECT
When attacking a target, has a chance to set them on fire -
LOOT_BONUS_MOBS
Provides a chance of gaining extra loot when killing monsters -
SWEEPING_EDGE
Increases damage against targets when using a sweep attack -
DIG_SPEED
Increases the rate at which you mine/dig -
SILK_TOUCH
Allows blocks to drop themselves instead of fragments (for example, stone instead of cobblestone) -
DURABILITY
Decreases the rate at which a tool looses durability -
LOOT_BONUS_BLOCKS
Provides a chance of gaining extra loot when destroying blocks -
ARROW_DAMAGE
Provides extra damage when shooting arrows from bows -
ARROW_KNOCKBACK
Provides a knockback when an entity is hit by an arrow from a bow -
ARROW_FIRE
Sets entities on fire when hit by arrows shot from a bow -
ARROW_INFINITE
Provides infinite arrows when shooting a bow -
LUCK
Decreases odds of catching worthless junk -
LURE
Increases rate of fish biting your hook -
LOYALTY
Causes a thrown trident to return to the player who threw it -
IMPALING
Deals more damage to mobs that live in the ocean -
RIPTIDE
When it is rainy, launches the player in the direction their trident is thrown -
CHANNELING
Strikes lightning when a mob is hit with a trident if conditions are stormy -
MULTISHOT
Shoot multiple arrows from crossbows -
QUICK_CHARGE
Charges crossbows quickly -
PIERCING
Crossbow projectiles pierce entities -
MENDING
Allows mending the item using experience orbs -
VANISHING_CURSE
Item disappears instead of dropping -
SOUL_SPEED
Walk quicker on soul blocks
-
-
Constructor Details
-
Enchantment
-
-
Method Details
-
getKey
Description copied from interface:Keyed
Return the namespaced identifier for this object. -
getName
Deprecated.enchantments are badly named, usegetKey()
.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
Gets the type ofItemStack
that may fit this Enchantment.- Returns:
- Target type of the Enchantment
-
isTreasure
public abstract boolean isTreasure()Checks if this enchantment is a treasure enchantment.
Treasure enchantments can only be received via looting, trading, or fishing.- Returns:
- true if the enchantment is a treasure enchantment
-
isCursed
Deprecated.cursed enchantments are no longer special. Will return true only forBINDING_CURSE
andVANISHING_CURSE
.Checks if this enchantment is a cursed enchantment
Cursed enchantments are found the same way treasure enchantments are- Returns:
- true if the enchantment is cursed
-
conflictsWith
Check if this enchantment conflicts with another enchantment.- Parameters:
other
- The enchantment to check against- Returns:
- True if there is a conflict.
-
canEnchantItem
Checks if this Enchantment may be applied to the givenItemStack
.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
-
displayName
Get the name of the enchantment with its applied level.If the given
level
is either less than thegetStartLevel()
or greater than thegetMaxLevel()
, the level may not be shown in the numeral format one may otherwise expect.- Parameters:
level
- the level of the enchantment to show- Returns:
- the name of the enchantment with
level
applied
-
isTradeable
public abstract boolean isTradeable()Checks if this enchantment can be found in villager trades.- Returns:
- true if the enchantment can be found in trades
-
isDiscoverable
public abstract boolean isDiscoverable()Checks if this enchantment can be found in an enchanting table or use to enchant items generated by loot tables.- Returns:
- true if the enchantment can be found in a table or by loot tables
-
getRarity
Gets the rarity of this enchantment.- Returns:
- the rarity
-
getDamageIncrease
Gets the damage increase as a result of the level and entity category specified- Parameters:
level
- the level of enchantmententityCategory
- the category of entity- Returns:
- the damage increase
-
getActiveSlots
Gets the equipment slots where this enchantment is considered "active".- Returns:
- the equipment slots
-
equals
-
hashCode
public int hashCode() -
toString
-
registerEnchantment
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 -
getByKey
@Contract("null -> null") @Nullable public static @Nullable Enchantment getByKey(@Nullable @Nullable NamespacedKey key)Gets the Enchantment at the specified key- Parameters:
key
- key to fetch- Returns:
- Resulting Enchantment, or null if not found
-
getByName
@Deprecated @Contract("null -> null") @Nullable public static @Nullable Enchantment getByName(@Nullable @Nullable String name)Deprecated.enchantments are badly named, usegetByKey(org.bukkit.NamespacedKey)
.Gets the Enchantment at the specified name- Parameters:
name
- Name to fetch- Returns:
- Resulting Enchantment, or null if not found
-
values
Gets an array of all the registeredEnchantment
s- Returns:
- Array of enchantments
-
getByKey(org.bukkit.NamespacedKey)
.