diff options
author | Celtic Minstrel <celtic.minstrel.ca@some.place> | 2012-03-05 14:21:43 -0500 |
---|---|---|
committer | EvilSeph <evilseph@gmail.com> | 2012-03-21 12:42:51 -0400 |
commit | 5ba892804158ba81b655826469363eefa8f0baaa (patch) | |
tree | 75daade710326db6487550877a21a8557951bc52 /src/main/java/net/minecraft/server/Entity.java | |
parent | 8d62de7055a8c901240412ac41f3cb5091ea41a9 (diff) | |
download | craftbukkit-5ba892804158ba81b655826469363eefa8f0baaa.tar craftbukkit-5ba892804158ba81b655826469363eefa8f0baaa.tar.gz craftbukkit-5ba892804158ba81b655826469363eefa8f0baaa.tar.lz craftbukkit-5ba892804158ba81b655826469363eefa8f0baaa.tar.xz craftbukkit-5ba892804158ba81b655826469363eefa8f0baaa.zip |
[Bleeding] Added getting and setting drops to all appropriate events. Fixes BUKKIT-397 and fixes BUKKIT-1252
- Allows drops in creative mode by adding items to the getDrops() list
- Contents of containers are not reported
- Contents of storage minecarts are not reported
Diffstat (limited to 'src/main/java/net/minecraft/server/Entity.java')
-rw-r--r-- | src/main/java/net/minecraft/server/Entity.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java index bc093075..f15827a7 100644 --- a/src/main/java/net/minecraft/server/Entity.java +++ b/src/main/java/net/minecraft/server/Entity.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.Random; // CraftBukkit start +import java.util.ArrayList; import java.util.UUID; import org.bukkit.Bukkit; import org.bukkit.block.BlockFace; @@ -17,6 +18,7 @@ import org.bukkit.event.vehicle.VehicleBlockCollisionEvent; import org.bukkit.event.vehicle.VehicleEnterEvent; import org.bukkit.event.vehicle.VehicleExitEvent; import org.bukkit.craftbukkit.entity.CraftPlayer; +import org.bukkit.craftbukkit.inventory.CraftItemStack; import org.bukkit.event.entity.EntityCombustEvent; import org.bukkit.event.entity.EntityDamageByBlockEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent; @@ -1337,12 +1339,18 @@ public abstract class Entity { final PluginManager pluginManager = Bukkit.getPluginManager(); if (thisBukkitEntity instanceof Painting) { - PaintingBreakByEntityEvent event = new PaintingBreakByEntityEvent((Painting) thisBukkitEntity, stormBukkitEntity); + List<org.bukkit.inventory.ItemStack> drops = new ArrayList<org.bukkit.inventory.ItemStack>(); + PaintingBreakByEntityEvent event = new PaintingBreakByEntityEvent((Painting) thisBukkitEntity, stormBukkitEntity, drops); pluginManager.callEvent(event); if (event.isCancelled()) { return; } + + // Something might've been added to the list of drops, so drop them + for (org.bukkit.inventory.ItemStack stack : drops) { + this.a(CraftItemStack.createNMSItemStack(stack), 0.0f); + } } EntityDamageByEntityEvent event = new EntityDamageByEntityEvent(stormBukkitEntity, thisBukkitEntity, EntityDamageEvent.DamageCause.LIGHTNING, 5); |