Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 71 lines 1.9 kB view raw
1package org.bukkit.event.block; 2 3import org.bukkit.block.Block; 4import org.bukkit.event.Cancellable; 5import org.bukkit.inventory.ItemStack; 6import org.bukkit.util.Vector; 7 8/** 9 * Called when an item is dispensed from a block. 10 * <p/> 11 * If a Block Dispense event is cancelled, the block will not dispense the item. 12 */ 13public class BlockDispenseEvent extends BlockEvent implements Cancellable { 14 15 private boolean cancelled = false; 16 private ItemStack item; 17 private Vector velocity; 18 19 public BlockDispenseEvent(Block block, ItemStack dispensed, Vector velocity) { 20 super(Type.BLOCK_DISPENSE, block); 21 this.item = dispensed; 22 this.velocity = velocity; 23 } 24 25 /** 26 * Gets the item that is being dispensed. Modifying the returned item 27 * will have no effect, you must use {@link #setItem(org.bukkit.inventory.ItemStack)} instead. 28 * 29 * @return An ItemStack for the item being dispensed 30 */ 31 public ItemStack getItem() { 32 return item.clone(); 33 } 34 35 /** 36 * Sets the item being dispensed. 37 * 38 * @param item the item being dispensed 39 */ 40 public void setItem(ItemStack item) { 41 this.item = item; 42 } 43 44 /** 45 * Gets the velocity. 46 * <p/> 47 * Note: Modifying the returned Vector will not change the velocity, you must use {@link #setVelocity(org.bukkit.util.Vector)} instead. 48 * 49 * @return A Vector for the dispensed item's velocity 50 */ 51 public Vector getVelocity() { 52 return velocity.clone(); 53 } 54 55 /** 56 * Sets the velocity of the item being dispensed. 57 * 58 * @param vel the velocity of the item being dispensed 59 */ 60 public void setVelocity(Vector vel) { 61 velocity = vel; 62 } 63 64 public boolean isCancelled() { 65 return cancelled; 66 } 67 68 public void setCancelled(boolean cancel) { 69 cancelled = cancel; 70 } 71}