/FileExtraction/Java_unseen/Wind-Development_WindSpigot/WindSpigot-API/src/main/java/org/bukkit/event/entity/EntityUnleashEvent.java
package org.bukkit.event.entity;

import org.bukkit.entity.Entity;
import org.bukkit.event.HandlerList;

/**
 * Called immediately prior to an entity being unleashed.
 */
public class EntityUnleashEvent extends EntityEvent {
	private static final HandlerList handlers = new HandlerList();
	private final UnleashReason reason;

	public EntityUnleashEvent(Entity entity, UnleashReason reason) {
		super(entity);
		this.reason = reason;
	}

	/**
	 * Returns the reason for the unleashing.
	 *
	 * @return The reason
	 */
	public UnleashReason getReason() {
		return reason;
	}

	@Override
	public HandlerList getHandlers() {
		return handlers;
	}

	public static HandlerList getHandlerList() {
		return handlers;
	}

	public enum UnleashReason {
		/**
		 * When the entity's leashholder has died or logged out, and so is unleashed
		 */
		HOLDER_GONE,
		/**
		 * When the entity's leashholder attempts to unleash it
		 */
		PLAYER_UNLEASH,
		/**
		 * When the entity's leashholder is more than 10 blocks away
		 */
		DISTANCE, UNKNOWN;
	}
}
