13
0
geforkt von Mirrors/Paper

[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>
Dieser Commit ist enthalten in:
Bukkit/Spigot 2011-08-14 22:34:13 -04:00
Ursprung da44559df3
Commit bbe996077c
6 geänderte Dateien mit 68 neuen und 7 gelöschten Zeilen

Datei anzeigen

@ -1,9 +1,12 @@
package org.bukkit.event.block; package org.bukkit.event.block;
import java.util.List;
import org.bukkit.block.Block; import org.bukkit.block.Block;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable; import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.inventory.ItemStack;
/** /**
* Called when a block is broken by a player. * 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 static final HandlerList handlers = new HandlerList();
private final Player player; private final Player player;
private boolean cancel; 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); super(theBlock);
this.player = player; this.player = player;
this.cancel = false; this.cancel = false;
this.drops = drops;
} }
/** /**
@ -35,6 +40,16 @@ public class BlockBreakEvent extends BlockEvent implements Cancellable {
return player; 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() { public boolean isCancelled() {
return cancel; return cancel;
} }

Datei anzeigen

@ -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 * @return Items to drop when the entity dies
*/ */

Datei anzeigen

@ -1,7 +1,10 @@
package org.bukkit.event.painting; package org.bukkit.event.painting;
import java.util.List;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.Painting; import org.bukkit.entity.Painting;
import org.bukkit.inventory.ItemStack;
/** /**
* Triggered when a painting is removed by an entity * Triggered when a painting is removed by an entity
@ -9,8 +12,8 @@ import org.bukkit.entity.Painting;
public class PaintingBreakByEntityEvent extends PaintingBreakEvent { public class PaintingBreakByEntityEvent extends PaintingBreakEvent {
private final Entity remover; private final Entity remover;
public PaintingBreakByEntityEvent(final Painting painting, final Entity remover) { public PaintingBreakByEntityEvent(final Painting painting, final Entity remover, List<ItemStack> drops) {
super(painting, RemoveCause.ENTITY); super(painting, RemoveCause.ENTITY, drops);
this.remover = remover; this.remover = remover;
} }

Datei anzeigen

@ -1,8 +1,11 @@
package org.bukkit.event.painting; package org.bukkit.event.painting;
import java.util.List;
import org.bukkit.entity.Painting; import org.bukkit.entity.Painting;
import org.bukkit.event.Cancellable; import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.inventory.ItemStack;
/** /**
* Triggered when a painting is removed * 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 static final HandlerList handlers = new HandlerList();
private boolean cancelled; private boolean cancelled;
private final RemoveCause cause; 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); super(painting);
this.cause = cause; this.cause = cause;
this.drops = drops;
} }
/** /**
@ -34,6 +39,14 @@ public class PaintingBreakEvent extends PaintingEvent implements Cancellable {
this.cancelled = cancel; 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 * An enum to specify the cause of the removal
*/ */

Datei anzeigen

@ -1,9 +1,12 @@
package org.bukkit.event.player; package org.bukkit.event.player;
import java.util.List;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable; import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.inventory.ItemStack;
/** /**
* Called when a player shears an entity * 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 static final HandlerList handlers = new HandlerList();
private boolean cancel; private boolean cancel;
private final Entity what; 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); super(who);
this.cancel = false; this.cancel = false;
this.what = what; this.what = what;
this.items = drops;
} }
public boolean isCancelled() { public boolean isCancelled() {
@ -36,6 +41,15 @@ public class PlayerShearEntityEvent extends PlayerEvent implements Cancellable {
return what; 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 @Override
public HandlerList getHandlers() { public HandlerList getHandlers() {
return handlers; return handlers;

Datei anzeigen

@ -1,9 +1,12 @@
package org.bukkit.event.vehicle; package org.bukkit.event.vehicle;
import java.util.List;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.Vehicle; import org.bukkit.entity.Vehicle;
import org.bukkit.event.Cancellable; import org.bukkit.event.Cancellable;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.inventory.ItemStack;
/** /**
* Raised when a vehicle is destroyed, which could be caused by either a player * 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 static final HandlerList handlers = new HandlerList();
private final Entity attacker; private final Entity attacker;
private boolean cancelled; 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); super(vehicle);
this.attacker = attacker; this.attacker = attacker;
this.drops = drops;
} }
/** /**
@ -45,4 +50,14 @@ public class VehicleDestroyEvent extends VehicleEvent implements Cancellable {
public static HandlerList getHandlerList() { public static HandlerList getHandlerList() {
return handlers; 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;
}
} }