Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-113809

Chorus Flower plant, Bamboo, Sugarcane, Cactus and other plants grow instantly when block below it is replaced with same block type

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reopened
    • Resolution: Unresolved
    • Affects Version/s: Minecraft 1.11.2, Minecraft 17w06a, Minecraft 17w13a, Minecraft 1.12 Pre-Release 6, Minecraft 1.12, Minecraft 1.12.1, Minecraft 1.12.2 Pre-Release 1, Minecraft 1.12.2 Pre-Release 2, Minecraft 1.12.2, Minecraft 17w43a, Minecraft 17w45b, Minecraft 17w46a, Minecraft 17w47a, Minecraft 17w48a, Minecraft 17w49a, Minecraft 17w49b, Minecraft 1.13.2, Minecraft 19w03b, Minecraft 19w03c, Minecraft 19w04b, Minecraft 19w08b, Minecraft 19w09a, Minecraft 1.14 Pre-Release 2, Minecraft 1.14 Pre-Release 3, Minecraft 1.14 Pre-Release 4, Minecraft 1.14 Pre-Release 5, Minecraft 1.14, Minecraft 1.14.1, Minecraft 1.14.2 Pre-Release 2, Minecraft 1.14.2 Pre-Release 3, Minecraft 1.14.2, Minecraft 1.14.3 Pre-Release 2
    • Fix Version/s: Minecraft 18w06a
    • Confirmation Status:
      Confirmed
    • Category:
      (Unassigned)

      Description

      The bug

      Any time the block underneath a Chorus Flower Plant is instantly replaced with Endstone, the Chorus Flower will grow.
      Same for Cactus blocks (which were originally not affected) with sand underneath them.

      The expected behavior is that the plant should break as Sugarcane do when the block underneath of those plants are moved and replaced.

      Videos of this behavior:

      How to reproduce

      1. Set the value for the gamerule randomTickSpeed to 0
        /gamerule randomTickSpeed 0
        
      1. Build a contraption like the one shown in Chorus flower update setup (17w06a).png and activate it

      Code analysis

      Based on 1.13.1 decompiled using MCPConfig

      The affected blocks check in their Block.updatePostPlacement(IBlockState, EnumFacing, IBlockState, IWorld, BlockPos, BlockPos) implementation (which is called when neighboring blocks change) whether they should break because the supporting block is missing. In this case a tick is scheduled. The problem is that when this tick is executed, the support block exists again and therefore instead of being broken, the plant grows (both actions are part of the update method Block#tick).

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                cubfan135 Jeremy
              • Votes:
                8 Vote for this issue
                Watchers:
                7 Start watching this issue

                Dates

                • Created:
                  Updated:
                  CHK: