package org.bukkit.event.block;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
/**
* Represents events with a source block and a destination block, currently
* only applies to liquid (lava and water) and teleporting dragon eggs.
* <p>
* If a Block From To event is cancelled, the block will not move (the liquid
* will not flow).
*/
public class BlockFromToEvent extends BlockEvent implements Cancellable
{
private static final HandlerList handlers = new HandlerList();
protected Block to;
protected BlockFace face;
protected boolean cancel;
public BlockFromToEvent(final Block block, final BlockFace face)
{
super(block);
this.face = face;
this.cancel = false;
}
public BlockFromToEvent(final Block block, final Block toBlock)
{
super(block);
this.to = toBlock;
this.face = BlockFace.SELF;
this.cancel = false;
}
/**
* Gets the BlockFace that the block is moving to.
*
* @return The BlockFace that the block is moving to
*/
public BlockFace getFace()
{
return face;
}
/**
* Convenience method for getting the faced Block.
*
* @return The faced Block
*/
public Block getToBlock()
{
if(to == null)
{
to = block.getRelative(face);
}
return to;
}
public boolean isCancelled()
{
return cancel;
}
public void setCancelled(boolean cancel)
{
this.cancel = cancel;
}
@Override
public HandlerList getHandlers()
{
return handlers;
}
public static HandlerList getHandlerList()
{
return handlers;
}
}