mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-07 16:57:42 +01:00
Add API for getting and setting experience for BlockBreakEvent. Addresses BUKKIT-2033
By: feildmaster <admin@feildmaster.com>
This commit is contained in:
parent
390a562680
commit
626c347565
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user