package org.bukkit.event.block; import com.google.common.collect.ImmutableList; import org.bukkit.block.Block; import org.bukkit.block.BlockState; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import java.util.List; /** * Fired when a single block placement action of a player triggers the * creation of multiple blocks(e.g. placing a bed block). The block returned * by {@link #getBlockPlaced()} and its related methods is the block where * the placed block would exist if the placement only affected a single * block. */ public class BlockMultiPlaceEvent extends BlockPlaceEvent { private final List<BlockState> states; public BlockMultiPlaceEvent(List<BlockState> states, Block clicked, ItemStack itemInHand, Player thePlayer, boolean canBuild) { super(states.get(0).getBlock(), states.get(0), clicked, itemInHand, thePlayer, canBuild); this.states = ImmutableList.copyOf(states); } /** * Gets a list of blockstates for all blocks which were replaced by the * placement of the new blocks. Most of these blocks will just have a * Material type of AIR. * * @return immutable list of replaced BlockStates */ public List<BlockState> getReplacedBlockStates() { return states; } }