From a5e6cfa7143691508f087b261a405390b9d45a21 Mon Sep 17 00:00:00 2001 From: EvilSeph Date: Fri, 17 Jun 2011 16:47:52 -0400 Subject: [PATCH] Added EntityRegainHealthEvent. Thanks TimWolla! --- src/main/java/org/bukkit/event/Event.java | 7 ++ .../bukkit/event/entity/EntityListener.java | 2 + .../event/entity/EntityRegainHealthEvent.java | 68 +++++++++++++++++++ .../bukkit/plugin/java/JavaPluginLoader.java | 7 ++ 4 files changed, 84 insertions(+) create mode 100644 src/main/java/org/bukkit/event/entity/EntityRegainHealthEvent.java diff --git a/src/main/java/org/bukkit/event/Event.java b/src/main/java/org/bukkit/event/Event.java index 079b4158..90ffc599 100644 --- a/src/main/java/org/bukkit/event/Event.java +++ b/src/main/java/org/bukkit/event/Event.java @@ -601,6 +601,13 @@ public abstract class Event implements Serializable { */ ENTITY_TAME (Category.LIVING_ENTITY), + /** + * Called when a LivingEntity is regains health + * + * @see org.bukkit.event.entity.EntityRegainHealthEvent + */ + ENTITY_REGAIN_HEALTH (Category.LIVING_ENTITY), + /** * WEATHER EVENTS */ diff --git a/src/main/java/org/bukkit/event/entity/EntityListener.java b/src/main/java/org/bukkit/event/entity/EntityListener.java index a6ca7027..2998d768 100644 --- a/src/main/java/org/bukkit/event/entity/EntityListener.java +++ b/src/main/java/org/bukkit/event/entity/EntityListener.java @@ -39,4 +39,6 @@ public class EntityListener implements Listener { public void onCreeperPower(CreeperPowerEvent event) {} public void onEntityTame(EntityTameEvent event) {} + + public void onEntityRegainHealth(EntityRegainHealthEvent event) {} } diff --git a/src/main/java/org/bukkit/event/entity/EntityRegainHealthEvent.java b/src/main/java/org/bukkit/event/entity/EntityRegainHealthEvent.java new file mode 100644 index 00000000..4340e300 --- /dev/null +++ b/src/main/java/org/bukkit/event/entity/EntityRegainHealthEvent.java @@ -0,0 +1,68 @@ +package org.bukkit.event.entity; + +import org.bukkit.entity.Entity; +import org.bukkit.event.Cancellable; +import org.bukkit.event.Event; + +/** + * Stores data for health-regain events + */ +public class EntityRegainHealthEvent extends EntityEvent implements Cancellable { + + private boolean cancelled; + private int amount; + + public EntityRegainHealthEvent(Entity entity, int amount) + { + super(Event.Type.ENTITY_REGAIN_HEALTH, entity); + this.amount = amount; + } + + protected EntityRegainHealthEvent(Event.Type type, Entity entity, int amount) + { + super(type, entity); + this.amount = amount; + } + + /** + * Gets the amount of regained health + * @return The amount of health regained + */ + public int getAmount() + { + return amount; + } + + /** + * Sets the amount of regained health + */ + public void setAmount(int amount) { + this.amount = amount; + } + + /** + * Gets the cancellation state of this event. A cancelled event will not + * be executed in the server, but will still pass to other plugins + * + * If a health-regain event is cancelled, the entity won't get health. + * This will not fire an event. + * + * @return true if this event is cancelled + */ + public boolean isCancelled() { + return cancelled; + } + + /** + * Sets the cancellation state of this event. A cancelled event will not + * be executed in the server, but will still pass to other plugins + * + * If a health-regain event is cancelled, the entity won't get health. + * This will not fire an event. + * + * @param cancel true if you wish to cancel this event + */ + public void setCancelled(boolean cancel) { + cancelled = cancel; + } +} diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java index c69b4720..47cffca4 100644 --- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java +++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java @@ -690,6 +690,13 @@ public final class JavaPluginLoader implements PluginLoader { } }; + case ENTITY_REGAIN_HEALTH: + return new EventExecutor() { + public void execute(Listener listener, Event event) { + ((EntityListener) listener).onEntityRegainHealth((EntityRegainHealthEvent) event); + } + }; + // Vehicle Events case VEHICLE_CREATE: return new EventExecutor() {