mojira.dev
MC-129017

Commands and structure blocks cannot properly create a moving piston block (no block entity created)

The bug

As the title says, when attempting to create a moving_piston block, the block entity is not created.

How to reproduce

  1. Type

    setblock ~ ~ ~ minecraft:moving_piston

    → Now the command can be run without NBT data

    → See it also suggests adding NBT data by suggesting the { character

  2. Finish the command:

    setblock ~ ~ ~ minecraft:moving_piston{blockState:{Name:"minecraft:piston_head",Properties:{facing:"south",short:"false",type:"normal"}},facing:3,progress:0.0f,source:1b,extending:1b}

    → It says the block has been placed, but there's nothing visible

  3. Type

    /data get block ~ ~ ~

    → It says the target block is not a block entity, and using the previous command in the same spot says it could not set the block. Note: using that same command on a moving block created by a piston does return the block entity

Affected methods

  • setblock

  • fill

  • clone

  • structure loading

Code analysis

Using MCP 1.12 names:

The tab-complete suggestion for NBT data occurs due to net.minecraft.block.Block.hasTileEntity() method returning true for the net.minecraft.block.BlockPistonMoving block. However, the block entity itself is not created because net.minecraft.block.BlockPistonMoving.createNewTileEntity() returns null.

Linked issues

Comments 4

Confirmed for 1.13.1-pre1

Confirmed for 1.16.1; if Asteraoth doesn't oppose, I'd like to be the reporter again.

Can confirm in 21w20a

Can confirm in 1.18.2 if the following command is valid:

/setblock ~ ~ ~ minecraft:moving_piston{blockState:[{Name:"minecraft:red_stained_glass"}],progress:1.0}

user-f2760

(Unassigned)

Confirmed

Platform

Normal

Commands

Minecraft 14w21b, Minecraft 1.10.2, Minecraft 1.12.2, Minecraft 18w02a, Minecraft 18w16a, ..., 1.19.4 Pre-release 3, 1.19.4, 1.20.1, 1.20.2, 23w43b

Retrieved