mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-09 11:44:19 +01:00
[Bleeding] Added getting and setting drops to all appropriate events. Fixes BUKKIT-397 and fixes BUKKIT-1252
By: Celtic Minstrel <celtic.minstrel.ca@some.place>
This commit is contained in:
parent
da44559df3
commit
bbe996077c
6 changed files with 68 additions and 7 deletions
|
@ -1,9 +1,12 @@
|
|||
package org.bukkit.event.block;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
/**
|
||||
* Called when a block is broken by a player.
|
||||
|
@ -19,11 +22,13 @@ public class BlockBreakEvent extends BlockEvent implements Cancellable {
|
|||
private static final HandlerList handlers = new HandlerList();
|
||||
private final Player player;
|
||||
private boolean cancel;
|
||||
private List<ItemStack> drops;
|
||||
|
||||
public BlockBreakEvent(final Block theBlock, final Player player) {
|
||||
public BlockBreakEvent(final Block theBlock, final Player player, List<ItemStack> drops) {
|
||||
super(theBlock);
|
||||
this.player = player;
|
||||
this.cancel = false;
|
||||
this.drops = drops;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -35,6 +40,16 @@ public class BlockBreakEvent extends BlockEvent implements Cancellable {
|
|||
return player;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a list of items that should drop from this block. Modifying this list will modify the items drop.
|
||||
* If the block is a container, the contents of the container will not be included in this list. You can
|
||||
* get the contents of the container by casting the block's state.
|
||||
* @return A list of drops
|
||||
*/
|
||||
public List<ItemStack> getDrops() {
|
||||
return drops;
|
||||
}
|
||||
|
||||
public boolean isCancelled() {
|
||||
return cancel;
|
||||
}
|
||||
|
|
|
@ -53,7 +53,8 @@ public class EntityDeathEvent extends EntityEvent {
|
|||
}
|
||||
|
||||
/**
|
||||
* Gets all the items which will drop when the entity dies
|
||||
* Gets all the items which will drop when the entity dies. Modifying this list will
|
||||
* modify what's actually dropped.
|
||||
*
|
||||
* @return Items to drop when the entity dies
|
||||
*/
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
package org.bukkit.event.painting;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Painting;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
/**
|
||||
* Triggered when a painting is removed by an entity
|
||||
|
@ -9,8 +12,8 @@ import org.bukkit.entity.Painting;
|
|||
public class PaintingBreakByEntityEvent extends PaintingBreakEvent {
|
||||
private final Entity remover;
|
||||
|
||||
public PaintingBreakByEntityEvent(final Painting painting, final Entity remover) {
|
||||
super(painting, RemoveCause.ENTITY);
|
||||
public PaintingBreakByEntityEvent(final Painting painting, final Entity remover, List<ItemStack> drops) {
|
||||
super(painting, RemoveCause.ENTITY, drops);
|
||||
this.remover = remover;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
package org.bukkit.event.painting;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.entity.Painting;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
/**
|
||||
* Triggered when a painting is removed
|
||||
|
@ -11,10 +14,12 @@ public class PaintingBreakEvent extends PaintingEvent implements Cancellable {
|
|||
private static final HandlerList handlers = new HandlerList();
|
||||
private boolean cancelled;
|
||||
private final RemoveCause cause;
|
||||
private List<ItemStack> drops;
|
||||
|
||||
public PaintingBreakEvent(final Painting painting, final RemoveCause cause) {
|
||||
public PaintingBreakEvent(final Painting painting, final RemoveCause cause, List<ItemStack> drops) {
|
||||
super(painting);
|
||||
this.cause = cause;
|
||||
this.drops = drops;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -34,6 +39,14 @@ public class PaintingBreakEvent extends PaintingEvent implements Cancellable {
|
|||
this.cancelled = cancel;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the list of items to be dropped. Modifying this list will modify what's actually dropped.
|
||||
* @return A list of drops
|
||||
*/
|
||||
public List<ItemStack> getDrops() {
|
||||
return drops;
|
||||
}
|
||||
|
||||
/**
|
||||
* An enum to specify the cause of the removal
|
||||
*/
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package org.bukkit.event.player;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
/**
|
||||
* Called when a player shears an entity
|
||||
|
@ -12,11 +15,13 @@ public class PlayerShearEntityEvent extends PlayerEvent implements Cancellable {
|
|||
private static final HandlerList handlers = new HandlerList();
|
||||
private boolean cancel;
|
||||
private final Entity what;
|
||||
private final List<ItemStack> items;
|
||||
|
||||
public PlayerShearEntityEvent(final Player who, final Entity what) {
|
||||
public PlayerShearEntityEvent(final Player who, final Entity what, final List<ItemStack> drops) {
|
||||
super(who);
|
||||
this.cancel = false;
|
||||
this.what = what;
|
||||
this.items = drops;
|
||||
}
|
||||
|
||||
public boolean isCancelled() {
|
||||
|
@ -36,6 +41,15 @@ public class PlayerShearEntityEvent extends PlayerEvent implements Cancellable {
|
|||
return what;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the items that will drop as a result of the shearing. To change the
|
||||
* items dropped, change the contents of this list.
|
||||
* @return The list of items.
|
||||
*/
|
||||
public List<ItemStack> getDrops() {
|
||||
return items;
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return handlers;
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
package org.bukkit.event.vehicle;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Vehicle;
|
||||
import org.bukkit.event.Cancellable;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
/**
|
||||
* Raised when a vehicle is destroyed, which could be caused by either a player
|
||||
|
@ -14,10 +17,12 @@ public class VehicleDestroyEvent extends VehicleEvent implements Cancellable {
|
|||
private static final HandlerList handlers = new HandlerList();
|
||||
private final Entity attacker;
|
||||
private boolean cancelled;
|
||||
private List<ItemStack> drops;
|
||||
|
||||
public VehicleDestroyEvent(final Vehicle vehicle, final Entity attacker) {
|
||||
public VehicleDestroyEvent(final Vehicle vehicle, final Entity attacker, List<ItemStack> drops) {
|
||||
super(vehicle);
|
||||
this.attacker = attacker;
|
||||
this.drops = drops;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -45,4 +50,14 @@ public class VehicleDestroyEvent extends VehicleEvent implements Cancellable {
|
|||
public static HandlerList getHandlerList() {
|
||||
return handlers;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a list of drops that this vehicle should drop when broken. Changes to this list will
|
||||
* affect what is actually dropped. This list does not include the contents of the inventory
|
||||
* if this is a storage minecart; if that's needed, it can be fetched by casting.
|
||||
* @return A list of drops
|
||||
*/
|
||||
public List<ItemStack> getDrops() {
|
||||
return drops;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue