summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/bukkit/event/player/PlayerItemConsumeEvent.java75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/event/player/PlayerItemConsumeEvent.java b/src/main/java/org/bukkit/event/player/PlayerItemConsumeEvent.java
new file mode 100644
index 00000000..5932412b
--- /dev/null
+++ b/src/main/java/org/bukkit/event/player/PlayerItemConsumeEvent.java
@@ -0,0 +1,75 @@
+package org.bukkit.event.player;
+
+import org.bukkit.Material;
+import org.bukkit.entity.Player;
+import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList;
+import org.bukkit.inventory.ItemStack;
+
+/**
+ * This event will fire when a player is finishing consuming an item (food,
+ * potion, milk bucket).
+ * <br>
+ * If the ItemStack is modified the server will use the effects of the new
+ * item and not remove the original one from the player's inventory.
+ * <br>
+ * If the event is cancelled the effect will not be applied and the item will
+ * not be removed from the player's inventory.
+ */
+public class PlayerItemConsumeEvent extends PlayerEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList();
+ private boolean isCancelled = false;
+ private ItemStack item;
+
+ /**
+ *
+ * @param player the player consuming
+ * @param item the ItemStack being consumed
+ */
+ public PlayerItemConsumeEvent(final Player player, final ItemStack item) {
+ super(player);
+
+ this.item = item;
+ }
+
+ /**
+ * Gets the item that is being consumed. Modifying the returned item will
+ * have no effect, you must use {@link
+ * #setItem(org.bukkit.inventory.ItemStack)} instead.
+ *
+ * @return an ItemStack for the item being consumed
+ */
+ public ItemStack getItem() {
+ return item.clone();
+ }
+
+ /**
+ * Set the item being consumed
+ *
+ * @param item the item being consumed
+ */
+ public void setItem(ItemStack item) {
+ if (item == null) {
+ this.item = new ItemStack(Material.AIR);
+ } else {
+ this.item = item;
+ }
+ }
+
+ public boolean isCancelled() {
+ return this.isCancelled;
+ }
+
+ public void setCancelled(boolean cancel) {
+ this.isCancelled = cancel;
+ }
+
+ @Override
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+}