diff options
author | Travis Watkins <amaranth@ubuntu.com> | 2013-03-01 23:54:29 -0600 |
---|---|---|
committer | Travis Watkins <amaranth@ubuntu.com> | 2013-03-02 00:03:57 -0600 |
commit | f6399fde39ddabe8bee437d6f99951e00392f964 (patch) | |
tree | ae8f0daf1f7f2f81f8d57b849219152a244d532a | |
parent | 90faffc3399be881d6010885c398c845ceb6b848 (diff) | |
download | bukkit-f6399fde39ddabe8bee437d6f99951e00392f964.tar bukkit-f6399fde39ddabe8bee437d6f99951e00392f964.tar.gz bukkit-f6399fde39ddabe8bee437d6f99951e00392f964.tar.lz bukkit-f6399fde39ddabe8bee437d6f99951e00392f964.tar.xz bukkit-f6399fde39ddabe8bee437d6f99951e00392f964.zip |
Add PlayerItemConsumeEvent. Adds BUKKIT-2349
-rw-r--r-- | src/main/java/org/bukkit/event/player/PlayerItemConsumeEvent.java | 75 |
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; + } +} |