Class EnchantmentHelper
java.lang.Object
net.minecraft.world.item.enchantment.EnchantmentHelper
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
static interface
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
canStoreEnchantments
(ItemStack stack) static void
doPostAttackEffects
(ServerLevel level, Entity entity, DamageSource damageSource) static void
doPostAttackEffectsWithItemSource
(ServerLevel level, Entity entity, DamageSource damageSource, ItemStack itemSource) static ItemStack
enchantItem
(RandomSource random, ItemStack stack, int level, Stream<Holder<Enchantment>> possibleEnchantments) static ItemStack
enchantItem
(RandomSource random, ItemStack stack, int level, RegistryAccess registryAccess, Optional<? extends HolderSet<Enchantment>> possibleEnchantments) static void
enchantItemFromProvider
(ItemStack stack, RegistryAccess registries, ResourceKey<EnchantmentProvider> key, DifficultyInstance difficulty, RandomSource random) static void
filterCompatibleEnchantments
(List<EnchantmentInstance> dataList, EnchantmentInstance data) static void
forEachModifier
(ItemStack stack, EquipmentSlotGroup slotGroup, BiConsumer<Holder<Attribute>, AttributeModifier> action) static void
forEachModifier
(ItemStack stack, EquipmentSlot slot, BiConsumer<Holder<Attribute>, AttributeModifier> action) static List
<EnchantmentInstance> getAvailableEnchantmentResults
(int level, ItemStack stack, Stream<Holder<Enchantment>> possibleEnchantments) static DataComponentType
<ItemEnchantments> getComponentType
(ItemStack stack) static float
getDamageProtection
(ServerLevel level, LivingEntity entity, DamageSource damageSource) static int
getEnchantmentCost
(RandomSource random, int enchantNum, int power, ItemStack stack) Returns the enchantability of itemstack, using a separate calculation for each enchantNum (0, 1 or 2), cutting to the max enchantability power of the table, which is locked to a max of 15.static int
getEnchantmentLevel
(Holder<Enchantment> enchantment, LivingEntity entity) static ItemEnchantments
static int
getFishingLuckBonus
(ServerLevel level, ItemStack stack, Entity entity) static float
getFishingTimeReduction
(ServerLevel level, ItemStack stack, Entity entity) static <T> com.mojang.datafixers.util.Pair
<T, Integer> getHighestLevel
(ItemStack stack, DataComponentType<T> componentType) static int
getItemEnchantmentLevel
(Holder<Enchantment> enchantment, ItemStack stack) Deprecated.static int
getPiercingCount
(ServerLevel level, ItemStack firedFromWeapon, ItemStack pickupItemStack) static Optional
<EnchantedItemInUse> getRandomItemWith
(DataComponentType<?> componentType, LivingEntity entity, Predicate<ItemStack> filter) static int
getTagEnchantmentLevel
(Holder<Enchantment> p_346179_, ItemStack p_44845_) Gets the level of an enchantment from NBT.static int
getTridentReturnToOwnerAcceleration
(ServerLevel level, ItemStack stack, Entity entity) static float
getTridentSpinAttackStrength
(ItemStack stack, LivingEntity entity) static boolean
has
(ItemStack stack, DataComponentType<?> componentType) static boolean
hasAnyEnchantments
(ItemStack stack) static boolean
hasTag
(ItemStack stack, TagKey<Enchantment> tag) static boolean
isEnchantmentCompatible
(Collection<Holder<Enchantment>> currentEnchantments, Holder<Enchantment> newEnchantment) static boolean
isImmuneToDamage
(ServerLevel level, LivingEntity entity, DamageSource damageSource) static float
modifyArmorEffectiveness
(ServerLevel level, ItemStack tool, Entity entity, DamageSource damageSource, float armorEffectiveness) static float
modifyCrossbowChargingTime
(ItemStack stack, LivingEntity entity, float crossbowChargingTime) static float
modifyDamage
(ServerLevel level, ItemStack tool, Entity entity, DamageSource damageSource, float damage) static int
modifyDurabilityToRepairFromXp
(ServerLevel level, ItemStack stack, int duabilityToRepairFromXp) static float
modifyFallBasedDamage
(ServerLevel level, ItemStack tool, Entity enity, DamageSource damageSource, float fallBasedDamage) static float
modifyKnockback
(ServerLevel level, ItemStack tool, Entity entity, DamageSource damageSource, float knockback) static void
onHitBlock
(ServerLevel level, ItemStack stack, LivingEntity owner, Entity entity, EquipmentSlot slot, Vec3 pos, BlockState state, Consumer<Item> onBreak) static void
onProjectileSpawned
(ServerLevel level, ItemStack firedFromWeapon, AbstractArrow arrow, Consumer<Item> onBreak) static <T> Optional
<T> pickHighestLevel
(ItemStack stack, DataComponentType<List<T>> componentType) static int
processAmmoUse
(ServerLevel level, ItemStack weapon, ItemStack ammo, int count) static int
processBlockExperience
(ServerLevel level, ItemStack stack, int experience) static int
processDurabilityChange
(ServerLevel level, ItemStack stack, int damage) static float
processEquipmentDropChance
(ServerLevel level, LivingEntity entity, DamageSource damageSource, float equipmentDropChance) static int
processMobExperience
(ServerLevel level, Entity killer, Entity mob, int experience) static int
processProjectileCount
(ServerLevel level, ItemStack tool, Entity entity, int projectileCount) static float
processProjectileSpread
(ServerLevel level, ItemStack tool, Entity entity, float projectileSpread) static void
static void
runIterationOnItem
(ItemStack stack, EquipmentSlot slot, LivingEntity entity, EnchantmentHelper.EnchantmentInSlotVisitor visitor) static void
runIterationOnItem
(ItemStack stack, EnchantmentHelper.EnchantmentVisitor visitor) static void
runLocationChangedEffects
(ServerLevel level, LivingEntity entity) static void
runLocationChangedEffects
(ServerLevel level, ItemStack stack, LivingEntity entity, EquipmentSlot slot) static List
<EnchantmentInstance> selectEnchantment
(RandomSource random, ItemStack stack, int level, Stream<Holder<Enchantment>> possibleEnchantments) static void
setEnchantments
(ItemStack stack, ItemEnchantments enchantments) static void
stopLocationBasedEffects
(LivingEntity entity) static void
stopLocationBasedEffects
(ItemStack stack, LivingEntity entity, EquipmentSlot slot) static void
tickEffects
(ServerLevel level, LivingEntity entity) static ItemEnchantments
updateEnchantments
(ItemStack stack, Consumer<ItemEnchantments.Mutable> updater)
-
Constructor Details
-
EnchantmentHelper
public EnchantmentHelper()
-
-
Method Details
-
getItemEnchantmentLevel
@Deprecated public static int getItemEnchantmentLevel(Holder<Enchantment> enchantment, ItemStack stack) Deprecated.Neo: UsegetTagEnchantmentLevel(Holder, ItemStack)
for NBT enchantments, orIItemStackExtension.getEnchantmentLevel(Holder)
for gameplay. -
getTagEnchantmentLevel
Gets the level of an enchantment from NBT. UseIItemStackExtension.getEnchantmentLevel(Holder)
for gameplay logic. -
updateEnchantments
public static ItemEnchantments updateEnchantments(ItemStack stack, Consumer<ItemEnchantments.Mutable> updater) -
canStoreEnchantments
-
setEnchantments
-
getEnchantmentsForCrafting
-
getComponentType
-
hasAnyEnchantments
-
processDurabilityChange
-
processAmmoUse
-
processBlockExperience
-
processMobExperience
public static int processMobExperience(ServerLevel level, @Nullable Entity killer, Entity mob, int experience) -
runIterationOnItem
public static void runIterationOnItem(ItemStack stack, EnchantmentHelper.EnchantmentVisitor visitor) -
runIterationOnItem
public static void runIterationOnItem(ItemStack stack, EquipmentSlot slot, LivingEntity entity, EnchantmentHelper.EnchantmentInSlotVisitor visitor) -
runIterationOnEquipment
public static void runIterationOnEquipment(LivingEntity entity, EnchantmentHelper.EnchantmentInSlotVisitor visitor) -
isImmuneToDamage
public static boolean isImmuneToDamage(ServerLevel level, LivingEntity entity, DamageSource damageSource) -
getDamageProtection
public static float getDamageProtection(ServerLevel level, LivingEntity entity, DamageSource damageSource) -
modifyDamage
public static float modifyDamage(ServerLevel level, ItemStack tool, Entity entity, DamageSource damageSource, float damage) -
modifyFallBasedDamage
public static float modifyFallBasedDamage(ServerLevel level, ItemStack tool, Entity enity, DamageSource damageSource, float fallBasedDamage) -
modifyArmorEffectiveness
public static float modifyArmorEffectiveness(ServerLevel level, ItemStack tool, Entity entity, DamageSource damageSource, float armorEffectiveness) -
modifyKnockback
public static float modifyKnockback(ServerLevel level, ItemStack tool, Entity entity, DamageSource damageSource, float knockback) -
doPostAttackEffects
-
doPostAttackEffectsWithItemSource
public static void doPostAttackEffectsWithItemSource(ServerLevel level, Entity entity, DamageSource damageSource, @Nullable ItemStack itemSource) -
runLocationChangedEffects
-
runLocationChangedEffects
public static void runLocationChangedEffects(ServerLevel level, ItemStack stack, LivingEntity entity, EquipmentSlot slot) -
stopLocationBasedEffects
-
stopLocationBasedEffects
public static void stopLocationBasedEffects(ItemStack stack, LivingEntity entity, EquipmentSlot slot) -
tickEffects
-
getEnchantmentLevel
-
processProjectileCount
public static int processProjectileCount(ServerLevel level, ItemStack tool, Entity entity, int projectileCount) -
processProjectileSpread
public static float processProjectileSpread(ServerLevel level, ItemStack tool, Entity entity, float projectileSpread) -
getPiercingCount
public static int getPiercingCount(ServerLevel level, ItemStack firedFromWeapon, ItemStack pickupItemStack) -
onProjectileSpawned
public static void onProjectileSpawned(ServerLevel level, ItemStack firedFromWeapon, AbstractArrow arrow, Consumer<Item> onBreak) -
onHitBlock
public static void onHitBlock(ServerLevel level, ItemStack stack, @Nullable LivingEntity owner, Entity entity, @Nullable EquipmentSlot slot, Vec3 pos, BlockState state, Consumer<Item> onBreak) -
modifyDurabilityToRepairFromXp
public static int modifyDurabilityToRepairFromXp(ServerLevel level, ItemStack stack, int duabilityToRepairFromXp) -
processEquipmentDropChance
public static float processEquipmentDropChance(ServerLevel level, LivingEntity entity, DamageSource damageSource, float equipmentDropChance) -
forEachModifier
public static void forEachModifier(ItemStack stack, EquipmentSlotGroup slotGroup, BiConsumer<Holder<Attribute>, AttributeModifier> action) -
forEachModifier
public static void forEachModifier(ItemStack stack, EquipmentSlot slot, BiConsumer<Holder<Attribute>, AttributeModifier> action) -
getFishingLuckBonus
-
getFishingTimeReduction
-
getTridentReturnToOwnerAcceleration
public static int getTridentReturnToOwnerAcceleration(ServerLevel level, ItemStack stack, Entity entity) -
modifyCrossbowChargingTime
public static float modifyCrossbowChargingTime(ItemStack stack, LivingEntity entity, float crossbowChargingTime) -
getTridentSpinAttackStrength
-
hasTag
-
has
-
pickHighestLevel
public static <T> Optional<T> pickHighestLevel(ItemStack stack, DataComponentType<List<T>> componentType) -
getHighestLevel
@Nullable public static <T> com.mojang.datafixers.util.Pair<T,Integer> getHighestLevel(ItemStack stack, DataComponentType<T> componentType) -
getRandomItemWith
public static Optional<EnchantedItemInUse> getRandomItemWith(DataComponentType<?> componentType, LivingEntity entity, Predicate<ItemStack> filter) -
getEnchantmentCost
public static int getEnchantmentCost(RandomSource random, int enchantNum, int power, ItemStack stack) Returns the enchantability of itemstack, using a separate calculation for each enchantNum (0, 1 or 2), cutting to the max enchantability power of the table, which is locked to a max of 15. -
enchantItem
public static ItemStack enchantItem(RandomSource random, ItemStack stack, int level, RegistryAccess registryAccess, Optional<? extends HolderSet<Enchantment>> possibleEnchantments) -
enchantItem
public static ItemStack enchantItem(RandomSource random, ItemStack stack, int level, Stream<Holder<Enchantment>> possibleEnchantments) -
selectEnchantment
public static List<EnchantmentInstance> selectEnchantment(RandomSource random, ItemStack stack, int level, Stream<Holder<Enchantment>> possibleEnchantments) -
filterCompatibleEnchantments
public static void filterCompatibleEnchantments(List<EnchantmentInstance> dataList, EnchantmentInstance data) -
isEnchantmentCompatible
public static boolean isEnchantmentCompatible(Collection<Holder<Enchantment>> currentEnchantments, Holder<Enchantment> newEnchantment) -
getAvailableEnchantmentResults
public static List<EnchantmentInstance> getAvailableEnchantmentResults(int level, ItemStack stack, Stream<Holder<Enchantment>> possibleEnchantments) -
enchantItemFromProvider
public static void enchantItemFromProvider(ItemStack stack, RegistryAccess registries, ResourceKey<EnchantmentProvider> key, DifficultyInstance difficulty, RandomSource random)
-
getTagEnchantmentLevel(Holder, ItemStack)
for NBT enchantments, orIItemStackExtension.getEnchantmentLevel(Holder)
for gameplay.