Mojira Archive
MC-82010

Moving blocks do not tick past the world border, causing them to stay offset when pushed by a piston

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.