Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
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}