[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
This commit is contained in:
Celtic Minstrel
2012-03-05 14:21:43 -05:00
committed by EvilSeph
parent 8d62de7055
commit 5ba8928041
20 changed files with 344 additions and 60 deletions

View File

@@ -1,5 +1,6 @@
package net.minecraft.server;
import java.util.ArrayList; // CraftBukkit
import java.util.Random;
public class BlockTNT extends Block {
@@ -41,7 +42,9 @@ public class BlockTNT extends Block {
public void postBreak(World world, int i, int j, int k, int l) {
if (!world.isStatic) {
if ((l & 1) == 0) {
/* CraftBukkit - Move this earlier so the block break event can see it
this.a(world, i, j, k, new ItemStack(Block.TNT.id, 1, 0));
// */
} else {
EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F));
@@ -51,6 +54,14 @@ public class BlockTNT extends Block {
}
}
// CraftBukkit start - Calculate drops
public ArrayList<ItemStack> calculateDrops(World world, EntityHuman entityhuman, int i, int j, int k, int l) {
super.dropList = new ArrayList<ItemStack>();
this.a(world, i, j, k, new ItemStack(Block.TNT.id, 1, 0));
return super.dropList;
}
// CraftBukkit end
public void attack(World world, int i, int j, int k, EntityHuman entityhuman) {
if (entityhuman.T() != null && entityhuman.T().id == Item.FLINT_AND_STEEL.id) {
world.setRawData(i, j, k, 1);