summaryrefslogtreecommitdiffstats
path: root/src/main/java/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/bukkit/event/Event.java6
-rw-r--r--src/main/java/org/bukkit/event/entity/EntityListener.java7
-rw-r--r--src/main/java/org/bukkit/event/entity/FoodLevelChangeEvent.java48
-rw-r--r--src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java7
4 files changed, 68 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/event/Event.java b/src/main/java/org/bukkit/event/Event.java
index efb609be..be6749f7 100644
--- a/src/main/java/org/bukkit/event/Event.java
+++ b/src/main/java/org/bukkit/event/Event.java
@@ -703,6 +703,12 @@ public abstract class Event implements Serializable {
* @see org.bukkit.event.entity.EndermanPlaceEvent
*/
ENDERMAN_PLACE (Category.LIVING_ENTITY),
+ /**
+ * Called when a human entity's food level changes
+ *
+ * @see org.bukkit.event.entity.FoodLevelChangeEvent
+ */
+ FOOD_LEVEL_CHANGE (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 00a7b568..20fb9bbe 100644
--- a/src/main/java/org/bukkit/event/entity/EntityListener.java
+++ b/src/main/java/org/bukkit/event/entity/EntityListener.java
@@ -148,4 +148,11 @@ public class EntityListener implements Listener {
* @param event Relevant event details
*/
public void onEndermanPlace(EndermanPlaceEvent event) {}
+
+ /**
+ * Called when a human entity's food level changes
+ *
+ * @param event Relevant event details
+ */
+ public void onFoodLevelChange(FoodLevelChangeEvent event) {}
}
diff --git a/src/main/java/org/bukkit/event/entity/FoodLevelChangeEvent.java b/src/main/java/org/bukkit/event/entity/FoodLevelChangeEvent.java
new file mode 100644
index 00000000..4adacfef
--- /dev/null
+++ b/src/main/java/org/bukkit/event/entity/FoodLevelChangeEvent.java
@@ -0,0 +1,48 @@
+package org.bukkit.event.entity;
+
+import org.bukkit.entity.Entity;
+import org.bukkit.event.Cancellable;
+
+/**
+ * Called when a human entity's food level changes
+ */
+public class FoodLevelChangeEvent extends EntityEvent implements Cancellable {
+ private boolean cancel = false;
+ private int level;
+
+ public FoodLevelChangeEvent(Entity what, int level) {
+ super(Type.FOOD_LEVEL_CHANGE, what);
+ this.level = level;
+ }
+
+ /**
+ * Gets the resultant food level that the entity involved in this event should be set to.
+ * <br /><br />
+ * Where 20 is a full food bar and 0 is an empty one.
+ *
+ * @return The resultant food level
+ */
+ public int getFoodLevel() {
+ return level;
+ }
+
+ /**
+ * Sets the resultant food level that the entity involved in this event should be set to
+ *
+ * @param level the resultant food level that the entity involved in this event should be set to
+ */
+ public void setFoodLevel(int level) {
+ if (level > 20) level = 20;
+ else if (level < 0) level = 0;
+
+ this.level = level;
+ }
+
+ public boolean isCancelled() {
+ return cancel;
+ }
+
+ public void setCancelled(boolean cancel) {
+ this.cancel = cancel;
+ }
+}
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
index 0693da62..8466664c 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
@@ -783,6 +783,13 @@ public class JavaPluginLoader implements PluginLoader {
}
};
+ case FOOD_LEVEL_CHANGE:
+ return new EventExecutor() {
+ public void execute(Listener listener, Event event) {
+ ((EntityListener) listener).onFoodLevelChange((FoodLevelChangeEvent) event);
+ }
+ };
+
// Vehicle Events
case VEHICLE_CREATE:
return new EventExecutor() {