mojira.dev
MC-15091

Bone meal is still consumed when the mushroom is in a position where it cannot grow

When placing mushrooms in the nether, and then using bone meal on them, they will never grow, no matter how much bone meal you use on them. Even though it shows the green growing particles, neither red or brown mushrooms will grow into huge mushrooms.

Steps to Reproduce:

  • Enter a dark environment.

  • Place down a mushroom and place a block above it.

  • Obtain some bone meal and apply lots of it to the mushroom.

Observed Behavior:
Bone meal is consumed when used on mushrooms in situations where they can't grow.

Expected Behavior:
Bone meal would not be consumed when used on mushrooms in situations where they can't grow.

Code Analysis:
Code analysis by @unknown can be found in this comment.

Linked issues

Attachments

Comments 10

Mushrooms require dirt material underneath them to be able to grow into huge mushrooms.

Confirmed for

  • 14w31a You can place mushrooms on blocks like stone... but using bonemeal won't let them grow (which is not possible) but still uses the bonemeal and makes the green particles

Can confirm this behavior in 21w39a. Here are some extra details regarding this problem. This ticket relates to MC-125642MC-127995, and MC-212226.

The Bug:

Bone meal is consumed when used on mushrooms in situations where they can't grow.

Steps to Reproduce:

  • Enter a dark environment.

  • Place down a mushroom and place a block above it.

  • Obtain some bone meal and apply lots of it to the mushroom.

Observed Behavior:

Bone meal is consumed when used on mushrooms in situations where they can't grow.

Expected Behavior:

Bone meal would not be consumed when used on mushrooms in situations where they can't grow.

Can confirm in 1.18.2.

Can confirm in 22w18a. Here's a code analysis of this issue.

Code Analysis:

The following is based on a decompiled version of Minecraft 1.18.2 using MCP-Reborn.

net.minecraft.world.level.block.MushroomBlock.java

public class MushroomBlock extends BushBlock implements BonemealableBlock {
   ...
   public boolean isValidBonemealTarget(BlockGetter $bg, BlockPos $bp, BlockState $bs, boolean %b) {
      return true;
   }

If we look at the above class, we can see that the isValidBonemealTarget() boolean always returns "true" for red and brown mushrooms regardless of any circumstances. No checks are carried out to see if the mushroom can grow into a mushroom tree, resulting in this issue occurring.

Can confirm in 1.19.

Can confirm in 1.19.2.

Can confirm in 1.19.3

Still occurring in 1.20.62

Nicholas Chard

(Unassigned)

Confirmed

Gameplay

Low

Items

bonemeal, mushrooms

Minecraft 1.5.2, 1.17.1, 21w39a, 1.18.2, 22w18a, ..., 1.20.1, 1.20.4, 24w34a, 24w35a, 1.21.8

Retrieved