diff options
author | feildmaster <admin@feildmaster.com> | 2012-08-08 06:51:44 -0500 |
---|---|---|
committer | feildmaster <admin@feildmaster.com> | 2012-08-08 19:48:50 -0500 |
commit | a54fdd96e86979c60d94d61004018bdec7964965 (patch) | |
tree | 63ba1dd37dd3b5bb83798ac25b8b85f4f40c0b24 /src/main/java | |
parent | 3c91fdc1219a6c3ea575a90e8a8588ca7f157943 (diff) | |
download | bukkit-a54fdd96e86979c60d94d61004018bdec7964965.tar bukkit-a54fdd96e86979c60d94d61004018bdec7964965.tar.gz bukkit-a54fdd96e86979c60d94d61004018bdec7964965.tar.lz bukkit-a54fdd96e86979c60d94d61004018bdec7964965.tar.xz bukkit-a54fdd96e86979c60d94d61004018bdec7964965.zip |
Add API for getting and setting experience for BlockBreakEvent. Addresses BUKKIT-2033
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/org/bukkit/event/block/BlockBreakEvent.java | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/main/java/org/bukkit/event/block/BlockBreakEvent.java b/src/main/java/org/bukkit/event/block/BlockBreakEvent.java index 606957f4..a5533007 100644 --- a/src/main/java/org/bukkit/event/block/BlockBreakEvent.java +++ b/src/main/java/org/bukkit/event/block/BlockBreakEvent.java @@ -8,22 +8,31 @@ import org.bukkit.event.HandlerList; /** * Called when a block is broken by a player. * <p /> + * If you wish to have the block drop experience, you must set the experience value above 0. + * By default, experience will be set in the event if: + * <ol> + * <li />The player is not in creative or adventure mode + * <li />The player can loot the block (ie: does not destroy it completely, by using the correct tool) + * <li />The player does not have silk touch + * <li />The block drops experience in vanilla MineCraft + * </ol> + * <p /> * Note: - * Plugins wanting to simulate a traditional block drop should set the block to air and utilise their own methods for determining + * Plugins wanting to simulate a traditional block drop should set the block to air and utilize their own methods for determining * what the default drop for the block being broken is and what to do about it, if anything. * <p /> - * If a Block Break event is cancelled, the block will not break. + * If a Block Break event is cancelled, the block will not break and experience will not drop. */ public class BlockBreakEvent extends BlockEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); private final Player player; private boolean cancel; + private int exp; public BlockBreakEvent(final Block theBlock, final Player player) { super(theBlock); this.player = player; - this.cancel = false; } /** @@ -35,6 +44,24 @@ public class BlockBreakEvent extends BlockEvent implements Cancellable { return player; } + /** + * Get the experience to drop after the block is broken. + * + * @return The experience to drop + */ + public int getExpToDrop() { + return exp; + } + + /** + * Set the amount of experience to drop after the block is broken. + * + * @param exp 1 or higher to drop experience, or else nothing will drop + */ + public void setExpToDrop(int exp) { + this.exp = exp; + } + public boolean isCancelled() { return cancel; } |