mojira.dev
MC-110903

Cannot remove horse saddle using /replaceitem

The bug

Using /replaceitem you cannot set the horse saddle to air (remove it), one would expect it to function the same as any other slot.

How to reproduce

  1. Summon a horse:

    /summon horse ~ ~ ~ {Tame:1}
  2. Add a saddle:

    /replaceitem entity @e[type=horse,limit=1] horse.saddle saddle

    → ✔ See "Replaced a slot on Horse with [Saddle]"

  3. Try to remove the saddle:

    /replaceitem entity @e[type=horse,limit=1] horse.saddle air

    → ❌ See "Could not put [Air] in slot 400"

Code analysis

The following is based on a decompiled version of Minecraft using MCP for 1.11.

The replaceItemInInventory() method in class net.minecraft.entity.passive.AbstractHorse requires the item to be a saddle at all times:

if (i == 0 && itemStackIn.getItem() != Items.SADDLE)
{
    return false;
}

This is unlike other mob equipment such as ArmorItems, where the contents can be deleted by replacing with "air".

Linked issues

Comments 2

Still an issue for Mules/Donkeys/Zombie Horses/Skeleton Horses.

Created MC-205220 

user-f2760

Uriel Salischiker

(Unassigned)

Confirmed

(Unassigned)

/replaceitem, air, horse, saddle

Minecraft 1.11, Minecraft 1.12 Pre-Release 6, Minecraft 1.12, Minecraft 1.12.1 Pre-Release 1, Minecraft 1.12.2, ..., 20w20b, 20w21a, 20w22a, 1.16 Pre-release 5, 1.16 Pre-release 8

20w46a

Retrieved