package luckyBlocks.event; import java.util.Random; import luckyBlocks.blocks._blocks; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.monster.EntityBlaze; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.world.Explosion; import net.minecraftforge.event.entity.living.ZombieEvent.SummonAidEvent; import net.minecraftforge.event.world.BlockEvent.BreakEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; public class LuckyBlockBreakEvent { @SubscribeEvent public void main(BreakEvent event) { if(event.getState().getBlock() != _blocks.blockLucky) { return; } Random rand = new Random(); switch(rand.nextInt(4)){ case 0: //drops a lot of lava buckets for(int a = 0; a < 32; a = a + 1){ BlockPos pos; Random randx = new Random(); double x = randx.nextInt(2); x = x - 0.5; Random randz = new Random(); double z = randz.nextInt(2); z = z - 0.5; double posX = event.getPos().getX() + x; double posY = event.getPos().getY() + 0.5; double posZ = event.getPos().getZ() + z; EntityItem bucket = new EntityItem(event.getWorld(), posX, posY, posZ, new ItemStack(Items.LAVA_BUCKET)); bucket.setLocationAndAngles(posX, posY, posZ, 0, 0); event.getWorld().spawnEntity(bucket); } break; case 1: //drops a lot of cacti for(int a = 0; a < 32; a = a + 1){ BlockPos pos; Random randx = new Random(); double x = randx.nextInt(2); x = x - 0.5; Random randz = new Random(); double z = randz.nextInt(2); z = z - 0.5; double posX = event.getPos().getX() + x; double posY = event.getPos().getY() + 0.5; double posZ = event.getPos().getZ() + z; EntityItem bucket = new EntityItem(event.getWorld(), posX, posY, posZ, new ItemStack(Item.getItemFromBlock(Blocks.CACTUS), 64)); bucket.setLocationAndAngles(posX, posY, posZ, 0, 0); event.getWorld().spawnEntity(bucket); } break; case 2: //summons 5 blazes for(int a = 0; a < 5; a = a + 1){ Random randx = new Random(); double x = randx.nextInt(5); x = x - 2; Random randz = new Random(); double z = randz.nextInt(5); z = z - 2; double posX = event.getPos().getX() + x; double posY = event.getPos().getY() + 1; double posZ = event.getPos().getZ() + z; EntityBlaze blaze = new EntityBlaze(event.getWorld()); blaze.setLocationAndAngles(posX, posY, posZ, 0, 0); event.getWorld().spawnEntity(blaze); } break; case 3: //spawns desert well int posX = event.getPos().getX(); int posY = event.getPos().getY(); int posZ = event.getPos().getZ(); event.getWorld().setBlockState(new BlockPos(posX + 1,posY,posZ), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX - 1,posY,posZ), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX,posY,posZ + 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX,posY,posZ - 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX + 1,posY,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1)); event.getWorld().setBlockState(new BlockPos(posX + 1,posY,posZ - 1), Blocks.STONE_SLAB.getStateFromMeta(1)); event.getWorld().setBlockState(new BlockPos(posX - 1,posY,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1)); event.getWorld().setBlockState(new BlockPos(posX - 1,posY,posZ - 1), Blocks.STONE_SLAB.getStateFromMeta(1)); event.getWorld().setBlockState(new BlockPos(posX,posY - 1,posZ), Blocks.WATER.getDefaultState()); //THIS IS THE BLOCK THAT WILL NOT SPAWN IN event.getWorld().setBlockState(new BlockPos(posX,posY,posZ), Blocks.STONE.getDefaultState()); //THIS IS THE BLOCK THAT WILL NOT SPAWN IN event.getWorld().setBlockState(new BlockPos(posX + 1,posY - 1,posZ + 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX + 1,posY - 1,posZ), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX + 1,posY - 1,posZ - 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX - 1,posY - 1,posZ + 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX - 1,posY - 1,posZ), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX - 1,posY - 1,posZ - 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX,posY - 1,posZ + 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX,posY - 1,posZ - 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX,posY - 2,posZ), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX + 1,posY - 2,posZ + 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX + 1,posY - 2,posZ), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX + 1,posY - 2,posZ - 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX - 1,posY - 2,posZ + 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX - 1,posY - 2,posZ), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX - 1,posY - 2,posZ - 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX,posY - 2,posZ + 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX,posY - 2,posZ +- 1), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX + 1,posY + 1,posZ), Blocks.OAK_FENCE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX - 1,posY + 1,posZ), Blocks.OAK_FENCE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX,posY + 1,posZ + 1), Blocks.OAK_FENCE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX,posY + 1,posZ - 1), Blocks.OAK_FENCE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX + 1,posY + 2,posZ), Blocks.OAK_FENCE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX - 1,posY + 2,posZ), Blocks.OAK_FENCE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX,posY + 2,posZ + 1), Blocks.OAK_FENCE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX,posY + 2,posZ - 1), Blocks.OAK_FENCE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX,posY + 3,posZ), Blocks.SANDSTONE.getDefaultState()); event.getWorld().setBlockState(new BlockPos(posX + 1,posY + 3,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1)); event.getWorld().setBlockState(new BlockPos(posX + 1,posY + 3,posZ), Blocks.STONE_SLAB.getStateFromMeta(1)); event.getWorld().setBlockState(new BlockPos(posX + 1,posY + 3,posZ - 1), Blocks.STONE_SLAB.getStateFromMeta(1)); event.getWorld().setBlockState(new BlockPos(posX - 1,posY + 3,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1)); event.getWorld().setBlockState(new BlockPos(posX - 1,posY + 3,posZ), Blocks.STONE_SLAB.getStateFromMeta(1)); event.getWorld().setBlockState(new BlockPos(posX - 1,posY + 3,posZ - 1), Blocks.STONE_SLAB.getStateFromMeta(1)); event.getWorld().setBlockState(new BlockPos(posX,posY + 3,posZ + 1), Blocks.STONE_SLAB.getStateFromMeta(1)); event.getWorld().setBlockState(new BlockPos(posX,posY + 3,posZ +- 1), Blocks.STONE_SLAB.getStateFromMeta(1)); EntityItem diamonds = new EntityItem(event.getWorld(), posX, posY, posZ, new ItemStack(Items.DIAMOND, 16)); diamonds.setLocationAndAngles(posX + 0.5, posY - 1, posZ + 0.5, 0, 0); diamonds.setVelocity(0, 0.1, 0); event.getWorld().spawnEntity(diamonds); break; case 5: event.getWorld().createExplosion(null, event.getPos().getX(), event.getPos().getY(), event.getPos().getZ(), 10, true); } } }