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.
Linked issues
is duplicated by 43
Attachments
Comments 16
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.
Your summary and description contradict each other.