Rework EntityExplodeEvent. Fixes BUKKIT-4140. Adds BUKKIT-4141

By: Wesley Wolfe <weswolf@aol.com>
This commit is contained in:
CraftBukkit/Spigot 2013-04-24 03:03:38 -05:00
parent 42fab40633
commit f06e7acda5

View File

@ -1097,23 +1097,6 @@ public class CraftWorld implements World {
return ((WorldNBTStorage) world.getDataManager()).getDirectory();
}
public void explodeBlock(Block block, float yield) {
// First of all, don't explode fire
if (block.getType().equals(org.bukkit.Material.AIR) || block.getType().equals(org.bukkit.Material.FIRE)) {
return;
}
int blockId = block.getTypeId();
int blockX = block.getX();
int blockY = block.getY();
int blockZ = block.getZ();
// following code is lifted from Explosion.a(boolean), and modified
net.minecraft.server.Block.byId[blockId].dropNaturally(this.world, blockX, blockY, blockZ, block.getData(), yield, 0);
block.setType(org.bukkit.Material.AIR);
// not sure what this does, seems to have something to do with the 'base' material of a block.
// For example, WOODEN_STAIRS does something with WOOD in this method
net.minecraft.server.Block.byId[blockId].wasExploded(this.world, blockX, blockY, blockZ, null);
}
public void sendPluginMessage(Plugin source, String channel, byte[] message) {
StandardMessenger.validatePluginMessage(server.getMessenger(), source, channel, message);