Class EnchantmentHelper
java.lang.Object
net.minecraft.world.item.enchantment.EnchantmentHelper
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfacestatic interface -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic booleancanStoreEnchantments(ItemStack stack) static voiddoPostAttackEffects(ServerLevel level, Entity entity, DamageSource damageSource) static voiddoPostAttackEffectsWithItemSource(ServerLevel level, Entity entity, DamageSource damageSource, ItemStack itemSource) static ItemStackenchantItem(RandomSource random, ItemStack stack, int level, Stream<Holder<Enchantment>> possibleEnchantments) static ItemStackenchantItem(RandomSource random, ItemStack stack, int level, RegistryAccess registryAccess, Optional<? extends HolderSet<Enchantment>> possibleEnchantments) static voidenchantItemFromProvider(ItemStack stack, RegistryAccess registries, ResourceKey<EnchantmentProvider> key, DifficultyInstance difficulty, RandomSource random) static voidfilterCompatibleEnchantments(List<EnchantmentInstance> dataList, EnchantmentInstance data) static voidforEachModifier(ItemStack stack, EquipmentSlotGroup slotGroup, BiConsumer<Holder<Attribute>, AttributeModifier> action) static voidforEachModifier(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 floatgetDamageProtection(ServerLevel level, LivingEntity entity, DamageSource damageSource) static intgetEnchantmentCost(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 intgetEnchantmentLevel(Holder<Enchantment> enchantment, LivingEntity entity) static ItemEnchantmentsstatic intgetFishingLuckBonus(ServerLevel level, ItemStack stack, Entity entity) static floatgetFishingTimeReduction(ServerLevel level, ItemStack stack, Entity entity) static <T> com.mojang.datafixers.util.Pair<T, Integer> getHighestLevel(ItemStack stack, DataComponentType<T> componentType) static intgetItemEnchantmentLevel(Holder<Enchantment> enchantment, ItemStack stack) Deprecated.static intgetPiercingCount(ServerLevel level, ItemStack firedFromWeapon, ItemStack pickupItemStack) static Optional<EnchantedItemInUse> getRandomItemWith(DataComponentType<?> componentType, LivingEntity entity, Predicate<ItemStack> filter) static intgetTagEnchantmentLevel(Holder<Enchantment> p_346179_, ItemStack p_44845_) Gets the level of an enchantment from NBT.static intgetTridentReturnToOwnerAcceleration(ServerLevel level, ItemStack stack, Entity entity) static floatgetTridentSpinAttackStrength(ItemStack stack, LivingEntity entity) static booleanhas(ItemStack stack, DataComponentType<?> componentType) static booleanhasAnyEnchantments(ItemStack stack) static booleanhasTag(ItemStack stack, TagKey<Enchantment> tag) static booleanisEnchantmentCompatible(Collection<Holder<Enchantment>> currentEnchantments, Holder<Enchantment> newEnchantment) static booleanisImmuneToDamage(ServerLevel level, LivingEntity entity, DamageSource damageSource) static floatmodifyArmorEffectiveness(ServerLevel level, ItemStack tool, Entity entity, DamageSource damageSource, float armorEffectiveness) static floatmodifyCrossbowChargingTime(ItemStack stack, LivingEntity entity, float crossbowChargingTime) static floatmodifyDamage(ServerLevel level, ItemStack tool, Entity entity, DamageSource damageSource, float damage) static intmodifyDurabilityToRepairFromXp(ServerLevel level, ItemStack stack, int duabilityToRepairFromXp) static floatmodifyFallBasedDamage(ServerLevel level, ItemStack tool, Entity enity, DamageSource damageSource, float fallBasedDamage) static floatmodifyKnockback(ServerLevel level, ItemStack tool, Entity entity, DamageSource damageSource, float knockback) static voidonHitBlock(ServerLevel level, ItemStack stack, LivingEntity owner, Entity entity, EquipmentSlot slot, Vec3 pos, BlockState state, Consumer<Item> onBreak) static voidonProjectileSpawned(ServerLevel level, ItemStack firedFromWeapon, AbstractArrow arrow, Consumer<Item> onBreak) static <T> Optional<T> pickHighestLevel(ItemStack stack, DataComponentType<List<T>> componentType) static intprocessAmmoUse(ServerLevel level, ItemStack weapon, ItemStack ammo, int count) static intprocessBlockExperience(ServerLevel level, ItemStack stack, int experience) static intprocessDurabilityChange(ServerLevel level, ItemStack stack, int damage) static floatprocessEquipmentDropChance(ServerLevel level, LivingEntity entity, DamageSource damageSource, float equipmentDropChance) static intprocessMobExperience(ServerLevel level, Entity killer, Entity mob, int experience) static intprocessProjectileCount(ServerLevel level, ItemStack tool, Entity entity, int projectileCount) static floatprocessProjectileSpread(ServerLevel level, ItemStack tool, Entity entity, float projectileSpread) static voidstatic voidrunIterationOnItem(ItemStack stack, EquipmentSlot slot, LivingEntity entity, EnchantmentHelper.EnchantmentInSlotVisitor visitor) static voidrunIterationOnItem(ItemStack stack, EnchantmentHelper.EnchantmentVisitor visitor) static voidrunLocationChangedEffects(ServerLevel level, LivingEntity entity) static voidrunLocationChangedEffects(ServerLevel level, ItemStack stack, LivingEntity entity, EquipmentSlot slot) static List<EnchantmentInstance> selectEnchantment(RandomSource random, ItemStack stack, int level, Stream<Holder<Enchantment>> possibleEnchantments) static voidsetEnchantments(ItemStack stack, ItemEnchantments enchantments) static voidstopLocationBasedEffects(LivingEntity entity) static voidstopLocationBasedEffects(ItemStack stack, LivingEntity entity, EquipmentSlot slot) static voidtickEffects(ServerLevel level, LivingEntity entity) static ItemEnchantmentsupdateEnchantments(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.