001 package org.bukkit.event.block;
002
003 import org.bukkit.Material;
004 import org.bukkit.block.Block;
005 import org.bukkit.block.BlockFace;
006 import org.bukkit.event.Cancellable;
007
008 /**
009 * Called when a piston block is triggered
010 */
011 public abstract class BlockPistonEvent extends BlockEvent implements Cancellable {
012 private boolean cancelled;
013 private final BlockFace direction;
014
015 public BlockPistonEvent(final Block block, final BlockFace direction) {
016 super(block);
017 this.direction = direction;
018 }
019
020 public boolean isCancelled() {
021 return this.cancelled;
022 }
023
024 public void setCancelled(boolean cancelled) {
025 this.cancelled = cancelled;
026 }
027
028 /**
029 * Returns true if the Piston in the event is sticky.
030 *
031 * @return stickiness of the piston
032 */
033 public boolean isSticky() {
034 return block.getType() == Material.PISTON_STICKY_BASE;
035 }
036
037 /**
038 * Return the direction in which the piston will operate.
039 *
040 * @return direction of the piston
041 */
042 public BlockFace getDirection() {
043 // Both are meh!
044 // return ((PistonBaseMaterial) block.getType().getNewData(block.getData())).getFacing();
045 // return ((PistonBaseMaterial) block.getState().getData()).getFacing();
046 return direction;
047 }
048 }