package org.bukkit.event.entity;
import org.bukkit.entity.Entity;
import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList;
import org.bukkit.util.NumberConversions;
/**
* Stores data for health-regain events
*/
public class EntityRegainHealthEvent extends EntityEvent implements Cancellable
{
private static final HandlerList handlers = new HandlerList();
private boolean cancelled;
private double amount;
private final RegainReason regainReason;
@Deprecated
public EntityRegainHealthEvent(final Entity entity, final int amount, final RegainReason regainReason)
{
this(entity, (double) amount, regainReason);
}
public EntityRegainHealthEvent(final Entity entity, final double amount, final RegainReason regainReason)
{
super(entity);
this.amount = amount;
this.regainReason = regainReason;
}
/**
* Gets the amount of regained health
*
* @return The amount of health regained
*/
public double getAmount()
{
return amount;
}
/**
* This method exists for legacy reasons to provide backwards
* compatibility. It will not exist at runtime and should not be used
* under any circumstances.
*/
@Deprecated
public int _INVALID_getAmount()
{
return NumberConversions.ceil(getAmount());
}
/**
* Sets the amount of regained health
*
* @param amount the amount of health the entity will regain
*/
public void setAmount(double amount)
{
this.amount = amount;
}
/**
* This method exists for legacy reasons to provide backwards
* compatibility. It will not exist at runtime and should not be used
* under any circumstances.
*/
@Deprecated
public void _INVALID_setAmount(int amount)
{
setAmount(amount);
}
public boolean isCancelled()
{
return cancelled;
}
public void setCancelled(boolean cancel)
{
cancelled = cancel;
}
/**
* Gets the reason for why the entity is regaining health
*
* @return A RegainReason detailing the reason for the entity regaining
* health
*/
public RegainReason getRegainReason()
{
return regainReason;
}
@Override
public HandlerList getHandlers()
{
return handlers;
}
public static HandlerList getHandlerList()
{
return handlers;
}
/**
* An enum to specify the type of health regaining that is occurring
*/
public enum RegainReason
{
/**
* When a player regains health from regenerating due to Peaceful mode
* (difficulty=0)
*/
REGEN,
/**
* When a player regains health from regenerating due to their hunger
* being satisfied
*/
SATIATED,
/**
* When a player regains health from eating consumables
*/
EATING,
/**
* When an ender dragon regains health from an ender crystal
*/
ENDER_CRYSTAL,
/**
* When a player is healed by a potion or spell
*/
MAGIC,
/**
* When a player is healed over time by a potion or spell
*/
MAGIC_REGEN,
/**
* When a wither is filling its health during spawning
*/
WITHER_SPAWN,
/**
* When an entity is damaged by the Wither potion effect
*/
WITHER,
/**
* Any other reason not covered by the reasons above
*/
CUSTOM
}
}