Newer
Older
ultramine_bukkit / src / main / java / org / bukkit / event / block / SignChangeEvent.java
@vlad20012 vlad20012 on 24 Feb 2017 2 KB initial
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;
	}
}