The bug
You can feed adult donkeys, horses or mules with maximum Temper
value, and the hand animation is not played.
The distinction of this issue from MC-93825 is that it is NOT a desync, and it is not MC-236341 as it happens only with a high temper value, and all food exhibits this behavior. However, sometimes golden carrots do play animation and sounds on the first time.
To reproduce
Summon a donkey, horse, llama or mule with a
Temper
value of 100, e.g./summon horse ~ ~ ~ {Temper:100}
Give the animal any food.
❓ Very rarely, animations and sounds will be played one time.
❌ No animations and sounds are played.Notice how the food is actually consumed, i.e. it is not a desync.
Expected result
You should not be able to feed said animal; as per MC-201599, it should show the hand animation but the animal should not consume the food (this was the behavior in 1.15.2).
Analysis (tentative)
Code analysis by @unknown can be found in this comment.
I think that this is the piece of code that causes the issue, but I might be wrong.
net.minecraft.world.entity.animal.horse.AbstractHorse.java (Mojang mappings, 1.18-pre1)
...
protected boolean handleEating(Player $$0, ItemStack $$1) {
boolean $$2 = false;
...
if ($$5 > 0 && ($$2 || !this.isTamed()) && this.getTemper() < this.getMaxTemper()) {
$$2 = true;
if (!this.level.isClientSide) {
this.modifyTemper($$5);
}
}
if ($$2) {
this.eating();
this.gameEvent(GameEvent.EAT, this.eyeBlockPosition());
}
...
If the animal's temper is equal or more than its max temper and it is not tamed, $$2
is not set to true
, so the game event and animations will not play. At least, this is what I understood.
Related issues
is duplicated by
relates to
Attachments
Comments


Relates to MC-187419.

I don't think this is a duplicate of MC-93825, because the items don't re-appear when the inventory is updated.

I think that the actual bug here could be that you are able to feed these animals with high Temper
in the first place.