The bug
Moving_Block do not tick past the worldborder causing them to stay offset / create a ghost block when pushed by a piston.
This seems like a regression of MC-54366
Pistons still try to push blocks through the worldborder, however they stay at the position they were as some kind of "ghost" blocks (very likely the piston_extension
block, which the client still renders, however it doesn't exist anymore, /testforblock
returns air). After reloading this area they are gone.
Code analysis
Based on 1.11 decompiled using MCP 9.35 rc1
The method net.minecraft.block.BlockPistonBase.canPush(IBlockState, World, BlockPos, EnumFacing, boolean)
only tests if the position of the block to move is inside the worldborder, but not if the new position is inside it as well.
The reason why the piston_extension
tile entity is not removed is because the method net.minecraft.world.World.updateEntities()
removes only invalid tile entities inside the worldborder.
Related issues
is duplicated by
Attachments
Comments


Pistons fail pushing blocks trough worldborder
Pistons can somehow still push blocks trough the worldborder
Your summary and description contradict each other.

I changed the description

Confirmed.

Confirmed for 1.9

Still in 16w15b

Confirmed for 1.13.2-pre2.

Cannot reproduce in 1.14 pre-5. It seems to be patched.
[media]
@ZeNico13
From the looks of your video, your worldborder is not perfectly aligned to a block boundary, while the worldborder may not always visually line up perfectly with the edges of blocks, any blocks that it partially includes are treated as being within the worldborder. This means that you weren't actually pushing the blocks outside the worldborder.

Confirmed to still be in 1.14.4
Not sure if it's in the 1.15 snapshots
Can confirm in 20w51a.

Ghost blocks also occur adjacent to the worldborder, if another block is pushed into them but then removed. They will remain visual as long as the world is loaded, and visually disappear but still remain when reloaded. Only upon moving the worldborder the block will become valid again.
This also applies to slabs and stairs being pushed into each other, producing visual double slabs/stairs from different, overlapping materials.

Not sure if this helps, but the block will disappear if tnt tries to explode it.
Just saying.

It is not a ghost blocks. It is a "moving_block". When a piston push a block, it creates a "moving block" outside of the worldborder.

Can confirm in 1.17.1

That was already marked as affected.

I would like to ask that we rename this bug report from: Pistons fail pushing blocks through worldborder, creating ghost blocks to Moving_Block's do not tick past the world border causing them to stay offset when pushed by a piston
Cause the current title is completely inaccurate