001    package org.bukkit.event.entity;
002    
003    import org.bukkit.entity.Entity;
004    import org.bukkit.entity.Player;
005    import org.bukkit.event.Cancellable;
006    import org.bukkit.event.Event;
007    import org.bukkit.event.HandlerList;
008    
009    /**
010     * Called immediately prior to a creature being leashed by a player.
011     */
012    public class PlayerLeashEntityEvent extends Event implements Cancellable {
013        private static final HandlerList handlers = new HandlerList();
014        private final Entity leashHolder;
015        private final Entity entity;
016        private boolean cancelled = false;
017        private final Player player;
018    
019        public PlayerLeashEntityEvent(Entity what, Entity leashHolder, Player leasher) {
020            this.leashHolder = leashHolder;
021            this.entity = what;
022            this.player = leasher;
023        }
024    
025        /**
026         * Returns the entity that is holding the leash.
027         *
028         * @return The leash holder
029         */
030        public Entity getLeashHolder() {
031            return leashHolder;
032        }
033    
034        /**
035         * Returns the entity being leashed.
036         *
037         * @return The entity
038         */
039        public Entity getEntity() {
040            return entity;
041        }
042    
043        /**
044         * Returns the player involved in this event
045         *
046         * @return Player who is involved in this event
047         */
048        public final Player getPlayer() {
049            return player;
050        }
051    
052        @Override
053        public HandlerList getHandlers() {
054            return handlers;
055        }
056    
057        public static HandlerList getHandlerList() {
058            return handlers;
059        }
060    
061        public boolean isCancelled() {
062            return this.cancelled;
063        }
064    
065        public void setCancelled(boolean cancel) {
066            this.cancelled  = cancel;
067        }
068    }