Piston

Pistons are blocks capable of pushing or pulling adjacent blocks, depending on the direction they face. The original version of this feature was a mod posted on the Minecraft Forums by Hippoplatimus. Pistons were added in version 1.7.Sticky Pistons are included as well. They added a use for Slimeballs. Pistons are slightly altered from the original version and they will not be called pistons. . One known difference from the mod's usage is that Pistons will not launch the player and other entities in the air. Pistons can't move Blocks like Chests, Noteblocks and other Blocks of that kind as proven in the video. Another difference is that moving blocks will be stored as tile entities instead of entities; this might make it possible to stand on moving pistons and blocks without falling through.

You can see a video of the current pistons as made by Jeb_ below. Some functions shown in the video include:
 * 1) Pushing (and pulling if sticky) at least 1 block, and at most 12 . Pulling will always only pull 1 block, while pushing will push between 1 and 12 blocks.
 * 2) Moving the player
 * 3) Blocking fluids, like a floodgate
 * 4) Use en masse is possible (piston walls)
 * 5) Gravity-affected blocks are NOT launched, but do fall to the piston if the piston contracts under it
 * 6) Obsidian, Bedrock and blocks with tile entities cannot be pushed.
 * 7) Pistons CAN be moved by other pistons in official version, but only when the piston is not extended.

Bugs

 * If you try to push certain blocks (most of them non-solid) with a piston, your game will crash with the "Saving chunks.." screen, and the world will become corrupt.