Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-267944

Some armor piece enchantments don't work on non-default types of armor

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Invalid
    • None
    • 1.20.4, 24w03a
    • None
    • Confirmed
    • Enchantments

      With the new enchantment item tags it is possible to e.g. add #chest_armor, #foot_armor, and #leg_armor to #enchantable/head_armor which makes Aqua Affinity and Respiration usable on all armor pieces which works fine in-game.

      Doing something equivalent for #enchantable/leg_armor and #enchantable/foot_armor does however not make Frost Walker, Soul Speed and Swift Sneak work in-game, meaning although the enchantments can be applied to e.g. helmets, they will not have any effect.
      The Depth Strider enchantment however does work as expected when made compatible with armor pieces other than boots.

      This comes from Enchantment#slots being set to Enchantments#ARMOR_SLOTS for Aqua Affinity, Respiration and Depth Strider, while Frost Walker, Soul Speed and Swift Sneak have this field set to EquipmentSlot#FEET or EquipmentSlot#LEGS respectively.

      Setting Enchantment#slots to Enchantments#ARMOR_SLOTS would therefore be awesome for Frost Walker, Soul Speed and Swift Sneak. With default enchantment item tag configurations it will not change any vanilla behavior, but will allow data packs to make these three enchantments usable on all armor pieces just like already is the case for Aqua Affinity, Respiration and Depth Strider.

      Also LivingEntity::tryAddSoulSpeed would need to be adjusted if Soul Speed slots are changed, as it specifically checks for the equipped boots item when damaging the item from walking around.

            Unassigned Unassigned
            Fusseel Fuzs
            Votes:
            2 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              CHK: