001    package org.bukkit.event.entity;
002    
003    import org.bukkit.entity.LightningStrike;
004    import org.bukkit.entity.Pig;
005    import org.bukkit.entity.PigZombie;
006    import org.bukkit.event.Cancellable;
007    import org.bukkit.event.HandlerList;
008    
009    /**
010     * Stores data for pigs being zapped
011     */
012    public class PigZapEvent extends EntityEvent implements Cancellable {
013        private static final HandlerList handlers = new HandlerList();
014        private boolean canceled;
015        private final PigZombie pigzombie;
016        private final LightningStrike bolt;
017    
018        public PigZapEvent(final Pig pig, final LightningStrike bolt, final PigZombie pigzombie) {
019            super(pig);
020            this.bolt = bolt;
021            this.pigzombie = pigzombie;
022        }
023    
024        public boolean isCancelled() {
025            return canceled;
026        }
027    
028        public void setCancelled(boolean cancel) {
029            canceled = cancel;
030        }
031    
032        @Override
033        public Pig getEntity() {
034            return (Pig) entity;
035        }
036    
037        /**
038         * Gets the bolt which is striking the pig.
039         *
040         * @return lightning entity
041         */
042        public LightningStrike getLightning() {
043            return bolt;
044        }
045    
046        /**
047         * Gets the zombie pig that will replace the pig, provided the event is
048         * not cancelled first.
049         *
050         * @return resulting entity
051         */
052        public PigZombie getPigZombie() {
053            return pigzombie;
054        }
055    
056        @Override
057        public HandlerList getHandlers() {
058            return handlers;
059        }
060    
061        public static HandlerList getHandlerList() {
062            return handlers;
063        }
064    }