package org.bukkit.event.block;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
/**
* Called when a sign is changed by a player.
* <p>
* If a Sign Change event is cancelled, the sign will not be changed.
*/
public class SignChangeEvent extends BlockEvent implements Cancellable
{
private static final HandlerList handlers = new HandlerList();
private boolean cancel = false;
private final Player player;
private final String[] lines;
public SignChangeEvent(final Block theBlock, final Player thePlayer, final String[] theLines)
{
super(theBlock);
this.player = thePlayer;
this.lines = theLines;
}
/**
* Gets the player changing the sign involved in this event.
*
* @return the Player involved in this event
*/
public Player getPlayer()
{
return player;
}
/**
* Gets all of the lines of text from the sign involved in this event.
*
* @return the String array for the sign's lines new text
*/
public String[] getLines()
{
return lines;
}
/**
* Gets a single line of text from the sign involved in this event.
*
* @param index index of the line to get
* @return the String containing the line of text associated with the
* provided index
* @throws IndexOutOfBoundsException thrown when the provided index is > 3
* or < 0
*/
public String getLine(int index) throws IndexOutOfBoundsException
{
return lines[index];
}
/**
* Sets a single line for the sign involved in this event
*
* @param index index of the line to set
* @param line text to set
* @throws IndexOutOfBoundsException thrown when the provided index is > 3
* or < 0
*/
public void setLine(int index, String line) throws IndexOutOfBoundsException
{
lines[index] = line;
}
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;
}
}