Mojira Archive
MC-250943

minecraft.used:minecraft.goat_horn doesn't increase when using goat horns

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 [Mod] Avoma 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));

Fixed

[Mod] Avoma

[Mojang] MNilsson

2022-04-27, 05:06 PM

2022-11-04, 09:02 AM

2022-10-10, 07:16 AM

21

9

Confirmed

Normal

Statistics

goat_horn

22w17a - 1.19.222w17a, 22w18a, 22w19a, 1.19 Pre-release 1, 1.19 Pre-release 2, 1.19, 1.19.1 Pre-release 1, 1.19.1 Pre-release 2, 1.19.1 Pre-release 5, 1.19.1, 1.19.2

22w42a