Made Mycel blocks throw BlockFade and BlockSpread events. This fixes BUKKIT-488. Thanks to tips48 for the pull request.

This commit is contained in:
Nathan Adams 2012-01-14 12:56:54 +00:00
parent 64ac337d4c
commit 9da730c8e1

View File

@ -1,6 +1,8 @@
package net.minecraft.server;
import java.util.Random;
import org.bukkit.event.block.BlockFadeEvent; // CraftBukkit
import org.bukkit.event.block.BlockSpreadEvent; // CraftBukkit
public class BlockMycel extends Block {
@ -17,7 +19,18 @@ public class BlockMycel extends Block {
public void a(World world, int i, int j, int k, Random random) {
if (!world.isStatic) {
if (world.getLightLevel(i, j + 1, k) < 4 && Block.q[world.getTypeId(i, j + 1, k)] > 2) {
world.setTypeId(i, j, k, Block.DIRT.id);
// CraftBukkit start
org.bukkit.World bworld = world.getWorld();
org.bukkit.block.BlockState blockState = bworld.getBlockAt(i, j, k).getState();
blockState.setTypeId(Block.DIRT.id);
BlockFadeEvent event = new BlockFadeEvent(blockState.getBlock(), blockState);
world.getServer().getPluginManager().callEvent(event);
if (!event.isCancelled()) {
blockState.update(true);
}
// CraftBukkit end
} else if (world.getLightLevel(i, j + 1, k) >= 9) {
for (int l = 0; l < 4; ++l) {
int i1 = i + random.nextInt(3) - 1;
@ -26,7 +39,18 @@ public class BlockMycel extends Block {
int l1 = world.getTypeId(i1, j1 + 1, k1);
if (world.getTypeId(i1, j1, k1) == Block.DIRT.id && world.getLightLevel(i1, j1 + 1, k1) >= 4 && Block.q[l1] <= 2) {
world.setTypeId(i1, j1, k1, this.id);
// CraftBukkit start
org.bukkit.World bworld = world.getWorld();
org.bukkit.block.BlockState blockState = bworld.getBlockAt(i1, j1, k1).getState();
blockState.setTypeId(this.id);
BlockSpreadEvent event = new BlockSpreadEvent(blockState.getBlock(), bworld.getBlockAt(i, j, k), blockState);
world.getServer().getPluginManager().callEvent(event);
if (!event.isCancelled()) {
blockState.update(true);
}
// CraftBukkit end
}
}
}