Everything associated with the pufferfish has "pufferfish" in the name ever since it was changed from "puffer_fish" in 1.13's development. However, sound events were not for some reason.
Attachments
Comments 11
I can confirm this behavior in 1.18 Release Candidate 3.
Here's a code analysis along with a potential fix regarding this issue. The following is based on a decompiled version of Minecraft 1.17.1 using MCP-Reborn.
Code Analysis:
net.minecraft.sounds.SoundEvents.java
public class SoundEvents {
...
public static final SoundEvent PUFFER_FISH_AMBIENT = register("entity.puffer_fish.ambient");
public static final SoundEvent PUFFER_FISH_BLOW_OUT = register("entity.puffer_fish.blow_out");
public static final SoundEvent PUFFER_FISH_BLOW_UP = register("entity.puffer_fish.blow_up");
public static final SoundEvent PUFFER_FISH_DEATH = register("entity.puffer_fish.death");
public static final SoundEvent PUFFER_FISH_FLOP = register("entity.puffer_fish.flop");
public static final SoundEvent PUFFER_FISH_HURT = register("entity.puffer_fish.hurt");
public static final SoundEvent PUFFER_FISH_STING = register("entity.puffer_fish.sting");
...If we look at the above class, we can see that all pufferfish sound events use the old entity ID for the word pufferfish. In other words, all pufferfish sound events spell the word pufferfish as "puffer_fish" instead of "pufferfish".
Potential Fix:
Simply renaming all pufferfish sound events to exclude the "_" character where appropriate should resolve this issue. The correct line of code within its class should look something like the following:
net.minecraft.sounds.SoundEvents.java
public class SoundEvents {
...
public static final SoundEvent PUFFERFISH_AMBIENT = register("entity.pufferfish.ambient");
public static final SoundEvent PUFFERFISH_BLOW_OUT = register("entity.pufferfish.blow_out");
public static final SoundEvent PUFFERFISH_BLOW_UP = register("entity.pufferfish.blow_up");
public static final SoundEvent PUFFERFISH_DEATH = register("entity.pufferfish.death");
public static final SoundEvent PUFFERFISH_FLOP = register("entity.pufferfish.flop");
public static final SoundEvent PUFFERFISH_HURT = register("entity.pufferfish.hurt");
public static final SoundEvent PUFFERFISH_STING = register("entity.pufferfish.sting");
...
Can confirm