package org.bukkit.event.world;
import org.bukkit.block.Block;
import org.bukkit.World;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import java.util.ArrayList;
import java.util.Collection;
/**
* Called when a portal is created
*/
public class PortalCreateEvent extends WorldEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private boolean cancel = false;
private final ArrayList<Block> blocks = new ArrayList<Block>();
private CreateReason reason = CreateReason.FIRE;
public PortalCreateEvent(final Collection<Block> blocks, final World world, CreateReason reason) {
super(world);
this.blocks.addAll(blocks);
this.reason = reason;
}
/**
* Gets an array list of all the blocks associated with the created portal
*
* @return array list of all the blocks associated with the created portal
*/
public ArrayList<Block> getBlocks() {
return this.blocks;
}
public boolean isCancelled() {
return cancel;
}
public void setCancelled(boolean cancel) {
this.cancel = cancel;
}
/**
* Gets the reason for the portal's creation
*
* @return CreateReason for the portal's creation
*/
public CreateReason getReason() {
return reason;
}
@Override
public HandlerList getHandlers() {
return handlers;
}
public static HandlerList getHandlerList() {
return handlers;
}
/**
* An enum to specify the various reasons for a portal's creation
*/
public enum CreateReason {
/**
* When a portal is created 'traditionally' due to a portal frame
* being set on fire.
*/
FIRE,
/**
* When a portal is created as a destination for an existing portal
* when using the custom PortalTravelAgent
*/
OBC_DESTINATION
}
}