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 itemStack) static ItemStackcreateBook(EnchantmentInstance enchant) static voiddoPostAttackEffects(ServerLevel serverLevel, Entity victim, DamageSource damageSource) static voiddoPostAttackEffectsWithItemSource(ServerLevel serverLevel, Entity victim, DamageSource damageSource, @Nullable ItemStack source) static voiddoPostAttackEffectsWithItemSourceOnBreak(ServerLevel serverLevel, Entity victim, DamageSource damageSource, @Nullable ItemStack source, @Nullable Consumer<Item> attackerlessOnBreak) static voiddoPostPiercingAttackEffects(ServerLevel serverLevel, LivingEntity user) static ItemStackenchantItem(RandomSource random, ItemStack itemStack, int enchantmentCost, Stream<Holder<Enchantment>> source) static ItemStackenchantItem(RandomSource random, ItemStack itemStack, int enchantmentCost, RegistryAccess registryAccess, Optional<? extends HolderSet<Enchantment>> set) static voidenchantItemFromProvider(ItemStack itemStack, RegistryAccess registryAccess, ResourceKey<EnchantmentProvider> providerKey, DifficultyInstance difficulty, RandomSource random) static voidfilterCompatibleEnchantments(List<EnchantmentInstance> enchants, EnchantmentInstance target) static voidforEachModifier(ItemStack itemStack, EquipmentSlotGroup slot, BiConsumer<Holder<Attribute>, AttributeModifier> consumer) static voidforEachModifier(ItemStack itemStack, EquipmentSlot slot, BiConsumer<Holder<Attribute>, AttributeModifier> consumer) static List<EnchantmentInstance> getAvailableEnchantmentResults(int value, ItemStack itemStack, Stream<Holder<Enchantment>> source) static DataComponentType<ItemEnchantments> getComponentType(ItemStack itemStack) static floatgetDamageProtection(ServerLevel serverLevel, LivingEntity victim, DamageSource source) static intgetEnchantmentCost(RandomSource random, int slot, int bookcases, ItemStack itemStack) 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 ItemEnchantmentsgetEnchantmentsForCrafting(ItemStack itemStack) static intgetFishingLuckBonus(ServerLevel serverLevel, ItemStack rod, Entity fisher) static floatgetFishingTimeReduction(ServerLevel serverLevel, ItemStack rod, Entity fisher) static <T> com.mojang.datafixers.util.Pair<T, Integer> getHighestLevel(ItemStack item, DataComponentType<T> effectType) static intgetItemEnchantmentLevel(Holder<Enchantment> enchantment, ItemInstance piece) Deprecated.static intgetPiercingCount(ServerLevel serverLevel, ItemStack weapon, ItemStack ammo) static Optional<EnchantedItemInUse> getRandomItemWith(DataComponentType<?> componentType, LivingEntity source, Predicate<ItemStack> predicate) static intgetTagEnchantmentLevel(Holder<Enchantment> enchantment, ItemInstance piece) Gets the level of an enchantment from NBT.static intgetTridentReturnToOwnerAcceleration(ServerLevel serverLevel, ItemStack weapon, Entity trident) static floatgetTridentSpinAttackStrength(ItemStack trident, LivingEntity holder) static booleanhas(ItemStack item, DataComponentType<?> effectType) static booleanhasAnyEnchantments(ItemStack itemStack) static booleanhasTag(ItemStack item, TagKey<Enchantment> tag) static booleanisEnchantmentCompatible(Collection<Holder<Enchantment>> enchants, Holder<Enchantment> target) static booleanisImmuneToDamage(ServerLevel serverLevel, LivingEntity victim, DamageSource source) static floatmodifyArmorEffectiveness(ServerLevel serverLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, float armorFraction) static floatmodifyCrossbowChargingTime(ItemStack crossbow, LivingEntity holder, float time) static floatmodifyDamage(ServerLevel serverLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, float damage) static intmodifyDurabilityToRepairFromXp(ServerLevel serverLevel, ItemStack item, int durability) static floatmodifyFallBasedDamage(ServerLevel serverLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, float damage) static floatmodifyKnockback(ServerLevel serverLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, float knockback) static voidonHitBlock(ServerLevel serverLevel, ItemStack weapon, @Nullable LivingEntity owner, Entity entity, @Nullable EquipmentSlot slot, Vec3 hitLocation, BlockState hitBlock, Consumer<Item> onBreak) static voidonProjectileSpawned(ServerLevel serverLevel, ItemStack weapon, Projectile projectileEntity, Consumer<Item> onBreak) static <T> Optional<T> pickHighestLevel(ItemStack itemStack, DataComponentType<List<T>> componentType) static intprocessAmmoUse(ServerLevel serverLevel, ItemStack weapon, ItemStack ammo, int amount) static intprocessBlockExperience(ServerLevel serverLevel, ItemStack itemStack, int amount) static intprocessDurabilityChange(ServerLevel serverLevel, ItemStack itemStack, int amount) static floatprocessEquipmentDropChance(ServerLevel serverLevel, LivingEntity entity, DamageSource killingBlow, float chance) static intprocessMobExperience(ServerLevel serverLevel, @Nullable Entity killer, Entity killed, int amount) static intprocessProjectileCount(ServerLevel serverLevel, ItemStack weapon, Entity shooter, int count) static floatprocessProjectileSpread(ServerLevel serverLevel, ItemStack weapon, Entity shooter, float angle) static voidstatic voidrunIterationOnItem(ItemStack piece, EquipmentSlot slot, LivingEntity owner, EnchantmentHelper.EnchantmentInSlotVisitor method) static voidrunIterationOnItem(ItemStack piece, EnchantmentHelper.EnchantmentVisitor method) static voidrunLocationChangedEffects(ServerLevel serverLevel, LivingEntity entity) static voidrunLocationChangedEffects(ServerLevel serverLevel, ItemStack stack, LivingEntity entity, EquipmentSlot slot) static List<EnchantmentInstance> selectEnchantment(RandomSource random, ItemStack itemStack, int enchantmentCost, Stream<Holder<Enchantment>> source) static voidsetEnchantments(ItemStack itemStack, ItemEnchantments enchantments) static voidstopLocationBasedEffects(LivingEntity entity) static voidstopLocationBasedEffects(ItemStack stack, LivingEntity entity, EquipmentSlot slot) static voidtickEffects(ServerLevel serverLevel, LivingEntity entity) static ItemEnchantmentsupdateEnchantments(ItemStack itemStack, Consumer<ItemEnchantments.Mutable> consumer)
-
Constructor Details
-
EnchantmentHelper
public EnchantmentHelper()
-
-
Method Details
-
getItemEnchantmentLevel
@Deprecated public static int getItemEnchantmentLevel(Holder<Enchantment> enchantment, ItemInstance piece) Deprecated.Neo: UsegetTagEnchantmentLevel(Holder, ItemInstance)for NBT enchantments, orItemInstanceExtension.getEnchantmentLevel(Holder)for gameplay. -
getTagEnchantmentLevel
Gets the level of an enchantment from NBT. UseItemInstanceExtension.getEnchantmentLevel(Holder)for gameplay logic. -
updateEnchantments
public static ItemEnchantments updateEnchantments(ItemStack itemStack, Consumer<ItemEnchantments.Mutable> consumer) -
canStoreEnchantments
-
setEnchantments
-
getEnchantmentsForCrafting
-
getComponentType
-
hasAnyEnchantments
-
processDurabilityChange
-
processAmmoUse
public static int processAmmoUse(ServerLevel serverLevel, ItemStack weapon, ItemStack ammo, int amount) -
processBlockExperience
-
processMobExperience
public static int processMobExperience(ServerLevel serverLevel, @Nullable Entity killer, Entity killed, int amount) -
createBook
-
runIterationOnItem
-
runIterationOnItem
public static void runIterationOnItem(ItemStack piece, EquipmentSlot slot, LivingEntity owner, EnchantmentHelper.EnchantmentInSlotVisitor method) -
runIterationOnEquipment
public static void runIterationOnEquipment(LivingEntity owner, EnchantmentHelper.EnchantmentInSlotVisitor method) -
isImmuneToDamage
public static boolean isImmuneToDamage(ServerLevel serverLevel, LivingEntity victim, DamageSource source) -
getDamageProtection
public static float getDamageProtection(ServerLevel serverLevel, LivingEntity victim, DamageSource source) -
modifyDamage
public static float modifyDamage(ServerLevel serverLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, float damage) -
modifyFallBasedDamage
public static float modifyFallBasedDamage(ServerLevel serverLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, float damage) -
modifyArmorEffectiveness
public static float modifyArmorEffectiveness(ServerLevel serverLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, float armorFraction) -
modifyKnockback
public static float modifyKnockback(ServerLevel serverLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, float knockback) -
doPostAttackEffects
public static void doPostAttackEffects(ServerLevel serverLevel, Entity victim, DamageSource damageSource) -
doPostPiercingAttackEffects
-
doPostAttackEffectsWithItemSource
public static void doPostAttackEffectsWithItemSource(ServerLevel serverLevel, Entity victim, DamageSource damageSource, @Nullable ItemStack source) -
doPostAttackEffectsWithItemSourceOnBreak
public static void doPostAttackEffectsWithItemSourceOnBreak(ServerLevel serverLevel, Entity victim, DamageSource damageSource, @Nullable ItemStack source, @Nullable Consumer<Item> attackerlessOnBreak) -
runLocationChangedEffects
-
runLocationChangedEffects
public static void runLocationChangedEffects(ServerLevel serverLevel, 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 serverLevel, ItemStack weapon, Entity shooter, int count) -
processProjectileSpread
public static float processProjectileSpread(ServerLevel serverLevel, ItemStack weapon, Entity shooter, float angle) -
getPiercingCount
-
onProjectileSpawned
public static void onProjectileSpawned(ServerLevel serverLevel, ItemStack weapon, Projectile projectileEntity, Consumer<Item> onBreak) -
onHitBlock
public static void onHitBlock(ServerLevel serverLevel, ItemStack weapon, @Nullable LivingEntity owner, Entity entity, @Nullable EquipmentSlot slot, Vec3 hitLocation, BlockState hitBlock, Consumer<Item> onBreak) -
modifyDurabilityToRepairFromXp
public static int modifyDurabilityToRepairFromXp(ServerLevel serverLevel, ItemStack item, int durability) -
processEquipmentDropChance
public static float processEquipmentDropChance(ServerLevel serverLevel, LivingEntity entity, DamageSource killingBlow, float chance) -
forEachModifier
public static void forEachModifier(ItemStack itemStack, EquipmentSlotGroup slot, BiConsumer<Holder<Attribute>, AttributeModifier> consumer) -
forEachModifier
public static void forEachModifier(ItemStack itemStack, EquipmentSlot slot, BiConsumer<Holder<Attribute>, AttributeModifier> consumer) -
getFishingLuckBonus
-
getFishingTimeReduction
-
getTridentReturnToOwnerAcceleration
public static int getTridentReturnToOwnerAcceleration(ServerLevel serverLevel, ItemStack weapon, Entity trident) -
modifyCrossbowChargingTime
-
getTridentSpinAttackStrength
-
hasTag
-
has
-
pickHighestLevel
public static <T> Optional<T> pickHighestLevel(ItemStack itemStack, DataComponentType<List<T>> componentType) -
getHighestLevel
public static <T> com.mojang.datafixers.util.Pair<T,Integer> getHighestLevel(ItemStack item, DataComponentType<T> effectType) -
getRandomItemWith
public static Optional<EnchantedItemInUse> getRandomItemWith(DataComponentType<?> componentType, LivingEntity source, Predicate<ItemStack> predicate) -
getEnchantmentCost
public static int getEnchantmentCost(RandomSource random, int slot, int bookcases, ItemStack itemStack) 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 itemStack, int enchantmentCost, RegistryAccess registryAccess, Optional<? extends HolderSet<Enchantment>> set) -
enchantItem
public static ItemStack enchantItem(RandomSource random, ItemStack itemStack, int enchantmentCost, Stream<Holder<Enchantment>> source) -
selectEnchantment
public static List<EnchantmentInstance> selectEnchantment(RandomSource random, ItemStack itemStack, int enchantmentCost, Stream<Holder<Enchantment>> source) -
filterCompatibleEnchantments
public static void filterCompatibleEnchantments(List<EnchantmentInstance> enchants, EnchantmentInstance target) -
isEnchantmentCompatible
public static boolean isEnchantmentCompatible(Collection<Holder<Enchantment>> enchants, Holder<Enchantment> target) -
getAvailableEnchantmentResults
public static List<EnchantmentInstance> getAvailableEnchantmentResults(int value, ItemStack itemStack, Stream<Holder<Enchantment>> source) -
enchantItemFromProvider
public static void enchantItemFromProvider(ItemStack itemStack, RegistryAccess registryAccess, ResourceKey<EnchantmentProvider> providerKey, DifficultyInstance difficulty, RandomSource random)
-
getTagEnchantmentLevel(Holder, ItemInstance)for NBT enchantments, orItemInstanceExtension.getEnchantmentLevel(Holder)for gameplay.