001    package org.bukkit.event.entity;
002    
003    import java.util.List;
004    import org.bukkit.PortalType;
005    import org.bukkit.block.BlockState;
006    import org.bukkit.entity.LivingEntity;
007    import org.bukkit.event.Cancellable;
008    import org.bukkit.event.HandlerList;
009    
010    /**
011     * Thrown when a Living Entity creates a portal in a world.
012     */
013    public class EntityCreatePortalEvent extends EntityEvent implements Cancellable {
014        private static final HandlerList handlers = new HandlerList();
015        private final List<BlockState> blocks;
016        private boolean cancelled = false;
017        private PortalType type = PortalType.CUSTOM;
018    
019        public EntityCreatePortalEvent(final LivingEntity what, final List<BlockState> blocks, final PortalType type) {
020            super(what);
021    
022            this.blocks = blocks;
023            this.type = type;
024        }
025    
026        @Override
027        public LivingEntity getEntity() {
028            return (LivingEntity) entity;
029        }
030    
031        /**
032         * Gets a list of all blocks associated with the portal.
033         *
034         * @return List of blocks that will be changed.
035         */
036        public List<BlockState> getBlocks() {
037            return blocks;
038        }
039    
040        public boolean isCancelled() {
041            return cancelled;
042        }
043    
044        public void setCancelled(boolean cancel) {
045            this.cancelled = cancel;
046        }
047    
048        /**
049         * Gets the type of portal that is trying to be created.
050         *
051         * @return Type of portal.
052         */
053        public PortalType getPortalType() {
054            return type;
055        }
056    
057        @Override
058        public HandlerList getHandlers() {
059            return handlers;
060        }
061    
062        public static HandlerList getHandlerList() {
063            return handlers;
064        }
065    }