The Bug:
minecraft.used:minecraft.goat_horn doesn't increase when using goat horns.
Steps to Reproduce:
Create a scoreboard objective for tracking the use of a goat horn and set it to display on the sidebar.
/scoreboard objectives add UseGoatHorn minecraft.used:minecraft.goat_horn
/scoreboard objectives setdisplay sidebar UseGoatHorn
Obtain a goat horn and use it.
Take note as to whether or not minecraft.used:minecraft.goat_horn increases when using goat horns.
Observed Behavior:
The scoreboard doesn't increase.
Expected Behavior:
The scoreboard would increase.
Code Analysis:
Code analysis by @unknown can be found below.
The following is based on a decompiled version of Minecraft 1.19 Pre-release 2 using Mojang mappings.
net.minecraft.world.item.InstrumentItem.java
public class InstrumentItem extends Item {
...
@Override
public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand interactionHand) {
ItemStack itemStack = player.getItemInHand(interactionHand);
Optional<Holder<Instrument>> optional = this.getInstrument(itemStack);
if (optional.isPresent()) {
Instrument instrument = optional.get().value();
player.startUsingItem(interactionHand);
InstrumentItem.play(level, player, instrument);
player.getCooldowns().addCooldown(this, instrument.useDuration());
return InteractionResultHolder.consume(itemStack);
}
return InteractionResultHolder.fail(itemStack);
}
...
If we look at the above class, we can see that the awardStat()
method (the method responsible for incrementing player statistics) is never called throughout this piece of code, thus making minecraft.used:minecraft.goat_horn not increase when using goat horns.
Fix:
Simply calling the awardStat()
method where appropriate within this piece of code will resolve this problem. The following line of code can be used to fix this issue.
player.awardStat(Stats.ITEM_USED.get(this));
Attachments
Comments 8
I also had same problem. I was using command and goat horn with scoreboard, but it didn't work. I hope this could be fixed in 1.19.1.
Following on from my code analysis, I've double-checked my proposed fix and I can confidently confirm that it's fully functioning and works as expected, so I've attached two screenshots to this report, one of which shows the current code and the other that shows the fixed code. I feel this information may be quite insightful hence my reasoning for providing it. 🙂
[media][media]Hi, just wanted to confirm I experience the bug as well in 1.19.2.
Set up a scoreboard objective to test for 'minecraft.used:minecraft.goat_horn' and the score does not increase after using a goat horn.
The number of times used in statistics also does not increase for goat horns.
Hope this gets fixed soon!
I got the same problem