Record Class Enchantment
java.lang.Object
java.lang.Record
net.minecraft.world.item.enchantment.Enchantment
public record Enchantment(Component description, Enchantment.EnchantmentDefinition definition, HolderSet<Enchantment> exclusiveSet, DataComponentMap effects)
extends Record
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic final recordstatic final recordprivate static interfaceprivate static interface -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Codec<Holder<Enchantment>> private final Enchantment.EnchantmentDefinitionThe field for thedefinitionrecord component.private final ComponentThe field for thedescriptionrecord component.static final Codec<Enchantment> private final DataComponentMapThe field for theeffectsrecord component.private final HolderSet<Enchantment> The field for theexclusiveSetrecord component.static final intstatic final StreamCodec<RegistryFriendlyByteBuf, Holder<Enchantment>> -
Constructor Summary
ConstructorsConstructorDescriptionEnchantment(Component description, Enchantment.EnchantmentDefinition definition, HolderSet<Enchantment> exclusiveSet, DataComponentMap effects) Creates an instance of aEnchantmentrecord class. -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> voidapplyEffects(List<ConditionalEffect<T>> effects, LootContext filterData, Enchantment.GenericAction<T> action) private static <T> voidapplyEffects(List<ConditionalEffect<T>> effects, LootContext filterData, org.apache.commons.lang3.mutable.MutableFloat value, Enchantment.FloatAction<T> action) static booleanareCompatible(Holder<Enchantment> enchantment, Holder<Enchantment> other) static LootContextblockHitContext(ServerLevel serverLevel, int enchantmentLevel, Entity entity, Vec3 position, BlockState hitBlock) booleancanEnchant(ItemStack itemStack) Deprecated.static Enchantment.CostconstantCost(int base) static LootContextdamageContext(ServerLevel serverLevel, int enchantmentLevel, Entity victim, DamageSource source) Returns the value of thedefinitionrecord component.definition(HolderSet<Item> supportedItems, int weight, int maxLevel, Enchantment.Cost minCost, Enchantment.Cost maxCost, int anvilCost, EquipmentSlotGroup... slots) definition(HolderSet<Item> supportedItems, HolderSet<Item> primaryItems, int weight, int maxLevel, Enchantment.Cost minCost, Enchantment.Cost maxCost, int anvilCost, EquipmentSlotGroup... slots) Returns the value of thedescriptionrecord component.voiddoPostAttack(ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse item, EnchantmentTarget forTarget, Entity victim, DamageSource damageSource) static voiddoPostAttack(TargetedConditionalEffect<EnchantmentEntityEffect> effect, ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse item, Entity victim, DamageSource damageSource) voiddoPostPiercingAttack(ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse item, Entity user) static Enchantment.CostdynamicCost(int base, int perLevel) effects()Returns the value of theeffectsrecord component.static Enchantment.Builderenchantment(Enchantment.EnchantmentDefinition definition) static LootContextentityContext(ServerLevel serverLevel, int enchantmentLevel, Entity entity, Vec3 position) final booleanIndicates whether some other object is "equal to" this one.Returns the value of theexclusiveSetrecord component.int<T> List<T> getEffects(DataComponentType<List<T>> type) static ComponentgetFullname(Holder<Enchantment> enchantment, int level) intgetMaxCost(int level) intintgetMinCost(int level) intgetSlotItems(LivingEntity entity) Deprecated.intfinal inthashCode()Returns a hash code value for this object.booleanisImmuneToDamage(ServerLevel serverLevel, int enchantmentLevel, Entity victim, DamageSource source) booleanisPrimaryItem(ItemStack item) Deprecated.Neo: UseIItemStackExtension.isPrimaryItemFor(Holder)This method does not respectIItemStackExtension.supportsEnchantment(Holder)since theHolderis not available, which makes the result of calling it invalid.booleanisSupportedItem(ItemStack item) Deprecated.static LootContextitemContext(ServerLevel serverLevel, int enchantmentLevel, ItemInstance itemStack) static LootContextlocationContext(ServerLevel serverLevel, int enchantmentLevel, Entity entity, boolean active) booleanmatchingSlot(EquipmentSlot slot) voidmodifyAmmoCount(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, org.apache.commons.lang3.mutable.MutableFloat change) voidmodifyArmorEffectivness(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, org.apache.commons.lang3.mutable.MutableFloat amount) voidmodifyBlockExperience(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, org.apache.commons.lang3.mutable.MutableFloat count) voidmodifyCrossbowChargeTime(RandomSource random, int enchantmentLevel, org.apache.commons.lang3.mutable.MutableFloat time) voidmodifyDamage(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, org.apache.commons.lang3.mutable.MutableFloat amount) voidmodifyDamageFilteredValue(DataComponentType<List<ConditionalEffect<EnchantmentValueEffect>>> effectType, ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, org.apache.commons.lang3.mutable.MutableFloat value) voidmodifyDamageProtection(ServerLevel serverLevel, int enchantmentLevel, ItemStack item, Entity victim, DamageSource source, org.apache.commons.lang3.mutable.MutableFloat protection) voidmodifyDurabilityChange(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, org.apache.commons.lang3.mutable.MutableFloat change) voidmodifyDurabilityToRepairFromXp(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, org.apache.commons.lang3.mutable.MutableFloat change) voidmodifyEntityFilteredValue(DataComponentType<List<ConditionalEffect<EnchantmentValueEffect>>> effectType, ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity entity, org.apache.commons.lang3.mutable.MutableFloat value) voidmodifyFallBasedDamage(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, org.apache.commons.lang3.mutable.MutableFloat amount) voidmodifyFishingLuckBonus(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity fisher, org.apache.commons.lang3.mutable.MutableFloat luck) voidmodifyFishingTimeReduction(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity fisher, org.apache.commons.lang3.mutable.MutableFloat timeReduction) voidmodifyItemFilteredCount(DataComponentType<List<ConditionalEffect<EnchantmentValueEffect>>> effectType, ServerLevel serverLevel, int enchantmentLevel, ItemInstance itemStack, org.apache.commons.lang3.mutable.MutableFloat value) voidmodifyKnockback(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, org.apache.commons.lang3.mutable.MutableFloat amount) voidmodifyMobExperience(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity killer, org.apache.commons.lang3.mutable.MutableFloat experience) voidmodifyPiercingCount(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, org.apache.commons.lang3.mutable.MutableFloat count) voidmodifyProjectileCount(ServerLevel serverLevel, int enchantmentLevel, ItemStack weapon, Entity shooter, org.apache.commons.lang3.mutable.MutableFloat count) voidmodifyProjectileSpread(ServerLevel serverLevel, int enchantmentLevel, ItemStack weapon, Entity shooter, org.apache.commons.lang3.mutable.MutableFloat angle) voidmodifyTridentReturnToOwnerAcceleration(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity trident, org.apache.commons.lang3.mutable.MutableFloat count) voidmodifyTridentSpinAttackStrength(RandomSource random, int enchantmentLevel, org.apache.commons.lang3.mutable.MutableFloat strength) voidmodifyUnfilteredValue(DataComponentType<EnchantmentValueEffect> component, RandomSource random, int enchantmentLevel, org.apache.commons.lang3.mutable.MutableFloat value) voidonHitBlock(ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse weapon, Entity projectile, Vec3 position, BlockState hitBlock) voidonProjectileSpawned(ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse weapon, Entity projectile) voidrunLocationChangedEffects(ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse item, LivingEntity entity) voidstopLocationBasedEffects(int enchantmentLevel, EnchantedItemInUse item, LivingEntity entity) voidtick(ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse item, Entity entity) toString()Returns a string representation of this record class.
-
Field Details
-
description
The field for thedescriptionrecord component. -
definition
The field for thedefinitionrecord component. -
exclusiveSet
The field for theexclusiveSetrecord component. -
effects
The field for theeffectsrecord component. -
MAX_LEVEL
public static final int MAX_LEVEL- See Also:
-
DIRECT_CODEC
-
CODEC
-
STREAM_CODEC
-
-
Constructor Details
-
Enchantment
public Enchantment(Component description, Enchantment.EnchantmentDefinition definition, HolderSet<Enchantment> exclusiveSet, DataComponentMap effects) Creates an instance of aEnchantmentrecord class.- Parameters:
description- the value for thedescriptionrecord componentdefinition- the value for thedefinitionrecord componentexclusiveSet- the value for theexclusiveSetrecord componenteffects- the value for theeffectsrecord component
-
-
Method Details
-
constantCost
-
dynamicCost
-
definition
public static Enchantment.EnchantmentDefinition definition(HolderSet<Item> supportedItems, HolderSet<Item> primaryItems, int weight, int maxLevel, Enchantment.Cost minCost, Enchantment.Cost maxCost, int anvilCost, EquipmentSlotGroup... slots) -
definition
public static Enchantment.EnchantmentDefinition definition(HolderSet<Item> supportedItems, int weight, int maxLevel, Enchantment.Cost minCost, Enchantment.Cost maxCost, int anvilCost, EquipmentSlotGroup... slots) -
getSlotItems
-
getSupportedItems
Deprecated. -
matchingSlot
-
isPrimaryItem
Deprecated.Neo: UseIItemStackExtension.isPrimaryItemFor(Holder)This method does not respectIItemStackExtension.supportsEnchantment(Holder)since theHolderis not available, which makes the result of calling it invalid. -
isSupportedItem
Deprecated. -
getWeight
public int getWeight() -
getAnvilCost
public int getAnvilCost() -
getMinLevel
public int getMinLevel() -
getMaxLevel
public int getMaxLevel() -
getMinCost
public int getMinCost(int level) -
getMaxCost
public int getMaxCost(int level) -
toString
-
areCompatible
-
getFullname
-
canEnchant
Deprecated. -
getEffects
-
isImmuneToDamage
public boolean isImmuneToDamage(ServerLevel serverLevel, int enchantmentLevel, Entity victim, DamageSource source) -
modifyDamageProtection
public void modifyDamageProtection(ServerLevel serverLevel, int enchantmentLevel, ItemStack item, Entity victim, DamageSource source, org.apache.commons.lang3.mutable.MutableFloat protection) -
modifyDurabilityChange
public void modifyDurabilityChange(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, org.apache.commons.lang3.mutable.MutableFloat change) -
modifyAmmoCount
public void modifyAmmoCount(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, org.apache.commons.lang3.mutable.MutableFloat change) -
modifyPiercingCount
public void modifyPiercingCount(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, org.apache.commons.lang3.mutable.MutableFloat count) -
modifyBlockExperience
public void modifyBlockExperience(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, org.apache.commons.lang3.mutable.MutableFloat count) -
modifyMobExperience
public void modifyMobExperience(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity killer, org.apache.commons.lang3.mutable.MutableFloat experience) -
modifyDurabilityToRepairFromXp
public void modifyDurabilityToRepairFromXp(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, org.apache.commons.lang3.mutable.MutableFloat change) -
modifyTridentReturnToOwnerAcceleration
public void modifyTridentReturnToOwnerAcceleration(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity trident, org.apache.commons.lang3.mutable.MutableFloat count) -
modifyTridentSpinAttackStrength
public void modifyTridentSpinAttackStrength(RandomSource random, int enchantmentLevel, org.apache.commons.lang3.mutable.MutableFloat strength) -
modifyFishingTimeReduction
public void modifyFishingTimeReduction(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity fisher, org.apache.commons.lang3.mutable.MutableFloat timeReduction) -
modifyFishingLuckBonus
public void modifyFishingLuckBonus(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity fisher, org.apache.commons.lang3.mutable.MutableFloat luck) -
modifyDamage
public void modifyDamage(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, org.apache.commons.lang3.mutable.MutableFloat amount) -
modifyFallBasedDamage
public void modifyFallBasedDamage(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, org.apache.commons.lang3.mutable.MutableFloat amount) -
modifyKnockback
public void modifyKnockback(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, org.apache.commons.lang3.mutable.MutableFloat amount) -
modifyArmorEffectivness
public void modifyArmorEffectivness(ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, org.apache.commons.lang3.mutable.MutableFloat amount) -
doPostAttack
public void doPostAttack(ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse item, EnchantmentTarget forTarget, Entity victim, DamageSource damageSource) -
doPostAttack
public static void doPostAttack(TargetedConditionalEffect<EnchantmentEntityEffect> effect, ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse item, Entity victim, DamageSource damageSource) -
doPostPiercingAttack
public void doPostPiercingAttack(ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse item, Entity user) -
modifyProjectileCount
public void modifyProjectileCount(ServerLevel serverLevel, int enchantmentLevel, ItemStack weapon, Entity shooter, org.apache.commons.lang3.mutable.MutableFloat count) -
modifyProjectileSpread
public void modifyProjectileSpread(ServerLevel serverLevel, int enchantmentLevel, ItemStack weapon, Entity shooter, org.apache.commons.lang3.mutable.MutableFloat angle) -
modifyCrossbowChargeTime
public void modifyCrossbowChargeTime(RandomSource random, int enchantmentLevel, org.apache.commons.lang3.mutable.MutableFloat time) -
modifyUnfilteredValue
public void modifyUnfilteredValue(DataComponentType<EnchantmentValueEffect> component, RandomSource random, int enchantmentLevel, org.apache.commons.lang3.mutable.MutableFloat value) -
tick
public void tick(ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse item, Entity entity) -
onProjectileSpawned
public void onProjectileSpawned(ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse weapon, Entity projectile) -
onHitBlock
public void onHitBlock(ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse weapon, Entity projectile, Vec3 position, BlockState hitBlock) -
modifyItemFilteredCount
public void modifyItemFilteredCount(DataComponentType<List<ConditionalEffect<EnchantmentValueEffect>>> effectType, ServerLevel serverLevel, int enchantmentLevel, ItemInstance itemStack, org.apache.commons.lang3.mutable.MutableFloat value) -
modifyEntityFilteredValue
public void modifyEntityFilteredValue(DataComponentType<List<ConditionalEffect<EnchantmentValueEffect>>> effectType, ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity entity, org.apache.commons.lang3.mutable.MutableFloat value) -
modifyDamageFilteredValue
public void modifyDamageFilteredValue(DataComponentType<List<ConditionalEffect<EnchantmentValueEffect>>> effectType, ServerLevel serverLevel, int enchantmentLevel, ItemStack itemStack, Entity victim, DamageSource damageSource, org.apache.commons.lang3.mutable.MutableFloat value) -
damageContext
public static LootContext damageContext(ServerLevel serverLevel, int enchantmentLevel, Entity victim, DamageSource source) -
itemContext
public static LootContext itemContext(ServerLevel serverLevel, int enchantmentLevel, ItemInstance itemStack) -
locationContext
public static LootContext locationContext(ServerLevel serverLevel, int enchantmentLevel, Entity entity, boolean active) -
entityContext
public static LootContext entityContext(ServerLevel serverLevel, int enchantmentLevel, Entity entity, Vec3 position) -
blockHitContext
public static LootContext blockHitContext(ServerLevel serverLevel, int enchantmentLevel, Entity entity, Vec3 position, BlockState hitBlock) -
applyEffects
public static <T> void applyEffects(List<ConditionalEffect<T>> effects, LootContext filterData, Enchantment.GenericAction<T> action) -
applyEffects
private static <T> void applyEffects(List<ConditionalEffect<T>> effects, LootContext filterData, org.apache.commons.lang3.mutable.MutableFloat value, Enchantment.FloatAction<T> action) -
runLocationChangedEffects
public void runLocationChangedEffects(ServerLevel serverLevel, int enchantmentLevel, EnchantedItemInUse item, LivingEntity entity) -
stopLocationBasedEffects
public void stopLocationBasedEffects(int enchantmentLevel, EnchantedItemInUse item, LivingEntity entity) -
enchantment
-
hashCode
-
equals
Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared withObjects::equals(Object,Object). -
description
Returns the value of thedescriptionrecord component.- Returns:
- the value of the
descriptionrecord component
-
definition
Returns the value of thedefinitionrecord component.- Returns:
- the value of the
definitionrecord component
-
exclusiveSet
Returns the value of theexclusiveSetrecord component.- Returns:
- the value of the
exclusiveSetrecord component
-
effects
Returns the value of theeffectsrecord component.- Returns:
- the value of the
effectsrecord component
-
IItemStackExtension.supportsEnchantment(Holder)