You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from MC-93825 is that it is NOT a desync, and it is not MC-233276 as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlike MC-233276, this does not affect llamas.
To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.
The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules, or adult donkeys, horses and mules should not consume hay bales to begin with, in line with how they used to behave in the past (see this comment).
Code analysis (tentative)
If adult donkeys, horses and mules should consume the hay bales:
There appears to be a missing line in AbstractHorse.java:
... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }
The variable $$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.
If they should not consume the hay bales:
Code analysis by BugCrusherszz can be found in this comment.
Linked Issues
is duplicated by1
relates to4
Created Issue:
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales.
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other foodexhibits this behavior, only hay bales.The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this doesnot affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules.
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules.
Analysis (tentative)
I have no idea if this is actually the case, as I am not a programmer. However, whilst looking at the decompiled source code, I found something that might be the origin of this bug; there appears to be a missing line in net.minecraft.world.entity.animal.horse.AbstractHorse.java:
AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The flag $$5 appears to control the Temper and the eating event, and it is missing for the hay bale.
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules.
Analysis (tentative)
I have no idea if this is actually the case, as I am not a programmer. However, whilst looking at the decompiled source code, I found something that might be the origin of this bug; there appears to be a missing line in net.minecraft.world.entity.animal.horse.AbstractHorse.java:
AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The flag $$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules.
Analysis (tentative)
I have no idea if this is actually the case, as I am not a programmer. However, whilst looking at the decompiled source code, I found something that might be the origin of this bug; there appears to be a missing line in
net.minecraft.world.entity.animal.horse.AbstractHorse.java:AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The flag $$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules.
Analysis (tentative)
I have no idea if this is actually the case, as I am not a programmer. However, whilst looking at the decompiled source code, I found something that might be the origin of this bug; there appears to be a missing line in AbstractHorse.java:
net.minecraft.world.entity.animal.horse.AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The flag $$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules.
Analysis (tentative)
I have no idea if this is actually the case, as I am not a programmer. However, whilst looking at the decompiled source code, I found something that might be the origin of this bug; there appears to be a missing line in AbstractHorse.java:
net.minecraft.world.entity.animal.horse.AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The
flag$$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules.
Analysis (tentative)
I have no idea if this is actually the case, as I am not a programmer. However, whilst looking at the decompiled source code, I found something that might be the origin of this bug; there appears to be a missing line in AbstractHorse.java:
net.minecraft.world.entity.animal.horse.AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The variable $$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules.
Analysis (tentative)I have no idea if this is actually the case, as I am not a programmer. However, whilst looking at the decompiled source code, I found something that might be the origin of this bug; there appears to be a missing line in AbstractHorse.java:
net.minecraft.world.entity.animal.horse.AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The variable $$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules.
Code analysis (tentative)
There appears to be a missing line in AbstractHorse.java:
net.minecraft.world.entity.animal.horse.AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The variable $$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.
I think I found the reason why this happens. I have no idea if this is actually the case, I am not a programmer. However, whilst looking at the decompiled source code, I found something that might be the origin of this bug; there appears to be a missing line in net.minecraft.world.entity.animal.horse.AbstractHorse.java:
AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The flag $$5 appears to control the Temper and the eating event, and it is missing for the hay bale.
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not playedHand animation and animal eating animation/sounds are not played when feeding hay bales to adult donkeys, horses or mules
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules. (Or adult donkeys, horses and mules should not consume hay bales to begin with, in line with how they used to behave in the past.)
Code analysis (tentative)
There appears to be a missing line in AbstractHorse.java:
net.minecraft.world.entity.animal.horse.AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The variable $$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules. (Or adult donkeys, horses and mules should not consume hay bales to begin with, in line with how they used to behave in the past.)
Code analysis (tentative)
There appears to be a missing line inAbstractHorse.java:net.minecraft.world.entity.animal.horse.AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The variable $$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules, or adult donkeys, horses and mules should not consume hay bales to begin with, in line with how they used to behave in the past (see this comment).
Code analysis (tentative)
If adult donkeys, horses and mules should consume the hay bales:
There appears to be a missing line in AbstractHorse.java:net.minecraft.world.entity.animal.horse.AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The variable $$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.
If they should not consume the hay bales:
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules, or adult donkeys, horses and mules should not consume hay bales to begin with, in line with how they used to behave in the past (see this comment).
Code analysis (tentative)
If adult donkeys, horses and mules should consume the hay bales:
There appears to be a missing line in AbstractHorse.java:net.minecraft.world.entity.animal.horse.AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The variable $$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.
If they should not consume the hay bales:
Code analysis by BugCrusherszz:
![]()
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules, or adult donkeys, horses and mules should not consume hay bales to begin with, in line with how they used to behave in the past (see this comment).
Code analysis (tentative)
If adult donkeys, horses and mules should consume the hay bales:
There appears to be a missing line in AbstractHorse.java:net.minecraft.world.entity.animal.horse.AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The variable $$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.
If they should not consume the hay bales:
Code analysis by BugCrusherszz:
![]()
The bug
You can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played.
The distinction of this issue from
MC-93825is that it is NOT a desync, and it is notMC-233276as it happens regardless of the animal's temper value, and no other food exhibits this behavior, only hay bales. Also unlikeMC-233276, this does not affect llamas.To reproduce
1. Summon a donkey, horse or mule.
2. Feed the animal hay bales.
3.The hay bales will be consumed, but no animations or sounds are played.
Expected result
Animations and sounds should be played when you feed hay bales to adult donkeys, horses and mules, or adult donkeys, horses and mules should not consume hay bales to begin with, in line with how they used to behave in the past (see this comment).
Code analysis (tentative)
If adult donkeys, horses and mules should consume the hay bales:
There appears to be a missing line in AbstractHorse.java:net.minecraft.world.entity.animal.horse.AbstractHorse.java (Mojang mappings, 1.18-pre1)... protected boolean handleEating(Player $$0, ItemStack $$1) { boolean $$2 = false; float $$3 = 0.0f; int $$4 = 0; int $$5 = 0; if ($$1.is(Items.WHEAT)) { $$3 = 2.0f; $$4 = 20; $$5 = 3; } ... else if ($$1.is(Blocks.HAY_BLOCK.asItem())) { $$3 = 20.0f; $$4 = 180; /** There should be a $$5 here? */ } ... else if ($$1.is(Items.GOLDEN_CARROT)) { $$3 = 4.0f; $$4 = 60; $$5 = 5; ... } ... 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()); }The variable $$5 appears to control the Temper and the eating event, and it is missing for the hay bale. Llamas override this method in their own class, which would explain why they are not affected.
If they should not consume the hay bales:
Code analysis by BugCrusherszz can be found in this comment.
Hand animation and animal eating animation/sounds are not playedwhen feeding hay bales to adult donkeys, horses or mulesYou can feed hay bales to adult donkeys, horses or mules, but hand animation and animal eating animation/sounds are not played
is duplicated by
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 BugCrusherszz can be found in this comment.
I think that this is the piece of code that causes the issue, but I might be wrong.
... 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.
Thank you for your report!
We're tracking this issue in MC-233276 and MC-236341, so this ticket is being resolved and linked as a duplicate.
If you would like to add a vote and any extra information to the main ticket it would be appreciated.
If you haven't already, you might like to make use of the search feature to see if the issue has already been mentioned.
Quick Links:
📓 Bug Tracker Guidelines – 💬 Community Support – 📧 Mojang Support
📓 Project Summary – ✍️ Feedback and Suggestions – 📖 Game Wiki

Closely relates to
MC-93825andMC-233276.And I think the reason llamas are not affected is because they override this method in their own class.
Dupe of
MC-233276It's not a duplicate. I stated in the description the reason why they are separate issues. They are marked as related.
I looked into this issue more, and it turns out the handleEating method returns correctly (it returns if the feeding action succeeded), so the error is caused by fedFood. See below how the ItemStack always decrements regardless if the feeding action succeeds or not. This affects all llamas, donkeys, mules, and horses, tamed or untamed.
This bug is also the cause of
MC-233276and MC-201599.BugCrusherszz I see, but that does not explain why only hay bales are affected in this case. Your analysis explains MC-201599 and
MC-233276, but I'm quite confident that the root cause of this particular issue is the missing variable in handleEating.On the Minecraft wiki it states that horses, mules, and donkeys cannot accept hay bales if untamed. If this is intended, then $$5 should be excluded from hay bales, meaning that the issue here is that the hay bales were incorrectly consumed, as a result of the analysis I attached.
The Minecraft wiki is not a source for intended behavior, as it is not considered an official source anymore. However, you could be right that it might be intended. I'll add this to the summary.
This has been fixed in 23w41a with the fix of
MC-233276.