Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 64 lines 2.4 kB view raw
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}