Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
1package net.minecraft.server;
2
3import java.util.Random;
4
5// CraftBukkit start
6import org.bukkit.event.block.BlockSpreadEvent;
7import org.bukkit.event.block.BlockFadeEvent;
8//CraftBukkit end
9
10public class BlockGrass extends Block {
11
12 protected BlockGrass(int i) {
13 super(i, Material.GRASS);
14 this.textureId = 3;
15 this.a(true);
16 }
17
18 public void a(World world, int i, int j, int k, Random random) {
19 if (!world.isStatic) {
20 if (world.getLightLevel(i, j + 1, k) < 4 && Block.q[world.getTypeId(i, j + 1, k)] > 2) {
21 if (random.nextInt(4) != 0) {
22 return;
23 }
24
25 // CraftBukkit start
26 org.bukkit.World bworld = world.getWorld();
27 org.bukkit.block.BlockState blockState = bworld.getBlockAt(i, j, k).getState();
28 blockState.setTypeId(Block.DIRT.id);
29
30 BlockFadeEvent event = new BlockFadeEvent(blockState.getBlock(), blockState);
31 world.getServer().getPluginManager().callEvent(event);
32
33 if (!event.isCancelled()) {
34 blockState.update(true);
35 }
36 // CraftBukkit end
37 } else if (world.getLightLevel(i, j + 1, k) >= 9) {
38 int l = i + random.nextInt(3) - 1;
39 int i1 = j + random.nextInt(5) - 3;
40 int j1 = k + random.nextInt(3) - 1;
41 int k1 = world.getTypeId(l, i1 + 1, j1);
42
43 if (world.getTypeId(l, i1, j1) == Block.DIRT.id && world.getLightLevel(l, i1 + 1, j1) >= 4 && Block.q[k1] <= 2) {
44 // CraftBukkit start
45 org.bukkit.World bworld = world.getWorld();
46 org.bukkit.block.BlockState blockState = bworld.getBlockAt(l, i1, j1).getState();
47 blockState.setTypeId(this.id);
48
49 BlockSpreadEvent event = new BlockSpreadEvent(blockState.getBlock(), bworld.getBlockAt(i, j, k), blockState);
50 world.getServer().getPluginManager().callEvent(event);
51
52 if (!event.isCancelled()) {
53 blockState.update(true);
54 }
55 // CraftBukkit end
56 }
57 }
58 }
59 }
60
61 public int a(int i, Random random) {
62 return Block.DIRT.a(0, random);
63 }
64}