24package com.dreamfirestudios.dreamcore.DreamEnchantment;
26import io.papermc.paper.enchantments.EnchantmentRarity;
27import io.papermc.paper.registry.set.RegistryKeySet;
28import net.kyori.adventure.text.Component;
29import org.bukkit.NamespacedKey;
30import org.bukkit.enchantments.Enchantment;
31import org.bukkit.enchantments.EnchantmentTarget;
32import org.bukkit.entity.EntityCategory;
33import org.bukkit.entity.EntityType;
34import org.bukkit.inventory.EquipmentSlotGroup;
35import org.bukkit.inventory.ItemStack;
36import org.bukkit.inventory.ItemType;
37import org.jetbrains.annotations.NotNull;
215 default boolean addToItem(@NotNull ItemStack stack,
int level,
boolean ignoreLevelRestriction) {
216 if (stack.getItemMeta() ==
null)
return false;
217 int clamped = Math.max(1, Math.min(level,
getMaxLevel()));
218 var meta = stack.getItemMeta();
220 stack.setItemMeta(meta);
default boolean addToItem(@NotNull ItemStack stack)
/
float getDamageIncrease(int level, @NotNull EntityCategory category)
/
default boolean addToItem(@NotNull ItemStack stack, int level, boolean ignoreLevelRestriction)
/
boolean isCursed()
Whether the enchantment is cursed.
boolean canEnchantItem(@NotNull ItemStack itemStack)
/
boolean isTreasure()
Whether the enchantment is a treasure-only enchant.
int getMinModifiedCost(int level)
Minimum modified enchanting cost for a given level.
EnchantmentTarget getItemTarget()
/
Set< EquipmentSlotGroup > getActiveSlotGroups()
/
boolean conflictsWith(Enchantment other)
/
float getDamageIncrease(int level, @NotNull EntityType type)
/
int getStartLevel()
Starting level when applied via typical means (e.g., table/loot).
RegistryKeySet< ItemType > getSupportedItems()
/
int getWeight()
Table/loot weight.
RegistryKeySet< ItemType > getPrimaryItems()
/
int getAnvilCost()
Additional anvil cost when combining.
boolean isTradeable()
Whether this enchantment can be obtained via villager trading.
EnchantmentRarity getRarity()
/
int getMaxModifiedCost(int level)
Maximum modified enchanting cost for a given level.
RegistryKeySet< Enchantment > getExclusiveWith()
/
default Enchantment returnEnchantment()
/
Component displayName(int level)
/
String getTranslationKey()
/
boolean isDiscoverable()
Whether this enchantment can appear via standard discovery (loot tables, enchanting table).
int getMaxLevel()
Maximum level allowed by this enchantment.