001 package org.bukkit.event.block; 002 003 import org.bukkit.block.Block; 004 import org.bukkit.entity.Player; 005 import org.bukkit.event.Cancellable; 006 import org.bukkit.event.HandlerList; 007 008 /** 009 * Called when a sign is changed by a player. 010 * <p> 011 * If a Sign Change event is cancelled, the sign will not be changed. 012 */ 013 public class SignChangeEvent extends BlockEvent implements Cancellable { 014 private static final HandlerList handlers = new HandlerList(); 015 private boolean cancel = false; 016 private final Player player; 017 private final String[] lines; 018 019 public SignChangeEvent(final Block theBlock, final Player thePlayer, final String[] theLines) { 020 super(theBlock); 021 this.player = thePlayer; 022 this.lines = theLines; 023 } 024 025 /** 026 * Gets the player changing the sign involved in this event. 027 * 028 * @return the Player involved in this event 029 */ 030 public Player getPlayer() { 031 return player; 032 } 033 034 /** 035 * Gets all of the lines of text from the sign involved in this event. 036 * 037 * @return the String array for the sign's lines new text 038 */ 039 public String[] getLines() { 040 return lines; 041 } 042 043 /** 044 * Gets a single line of text from the sign involved in this event. 045 * 046 * @param index index of the line to get 047 * @return the String containing the line of text associated with the 048 * provided index 049 * @throws IndexOutOfBoundsException thrown when the provided index is > 3 050 * or < 0 051 */ 052 public String getLine(int index) throws IndexOutOfBoundsException { 053 return lines[index]; 054 } 055 056 /** 057 * Sets a single line for the sign involved in this event 058 * 059 * @param index index of the line to set 060 * @param line text to set 061 * @throws IndexOutOfBoundsException thrown when the provided index is > 3 062 * or < 0 063 */ 064 public void setLine(int index, String line) throws IndexOutOfBoundsException { 065 lines[index] = line; 066 } 067 068 public boolean isCancelled() { 069 return cancel; 070 } 071 072 public void setCancelled(boolean cancel) { 073 this.cancel = cancel; 074 } 075 076 @Override 077 public HandlerList getHandlers() { 078 return handlers; 079 } 080 081 public static HandlerList getHandlerList() { 082 return handlers; 083 } 084 }