001 package org.bukkit.event.block; 002 003 import org.bukkit.block.Block; 004 import org.bukkit.block.BlockState; 005 import org.bukkit.event.HandlerList; 006 007 /** 008 * Called when a block spreads based on world conditions. 009 * <p> 010 * Use {@link BlockFormEvent} to catch blocks that "randomly" form instead of 011 * actually spread. 012 * <p> 013 * Examples: 014 * <ul> 015 * <li>Mushrooms spreading. 016 * <li>Fire spreading. 017 * </ul> 018 * <p> 019 * If a Block Spread event is cancelled, the block will not spread. 020 * 021 * @see BlockFormEvent 022 */ 023 public class BlockSpreadEvent extends BlockFormEvent { 024 private static final HandlerList handlers = new HandlerList(); 025 private final Block source; 026 027 public BlockSpreadEvent(final Block block, final Block source, final BlockState newState) { 028 super(block, newState); 029 this.source = source; 030 } 031 032 /** 033 * Gets the source block involved in this event. 034 * 035 * @return the Block for the source block involved in this event. 036 */ 037 public Block getSource() { 038 return source; 039 } 040 041 @Override 042 public HandlerList getHandlers() { 043 return handlers; 044 } 045 046 public static HandlerList getHandlerList() { 047 return handlers; 048 } 049 }