@@ -0,0 +1,1950 @@
+package net.glowstone.generator.objects;%0A%0Aimport org.bukkit.Location;%0Aimport org.bukkit.Material;%0Aimport org.bukkit.World;%0Aimport org.bukkit.block.Block;%0Aimport org.bukkit.entity.EntityType;%0A%0Aimport java.util.Random;%0A%0Apublic class ObsidianPillar %7B%0A%0A    public void generate(World world, Random random, int sourceX, int sourceY, int sourceZ) %7B%0A        if (world.getBlockAt(sourceX, sourceY, sourceZ).isEmpty() && world.getBlockAt(sourceX, sourceY - 1, sourceZ).getType() == Material.ENDER_STONE) %7B%0A%0A            int height = random.nextInt(32) + 6;%0A            int radius = random.nextInt(4) + 1;%0A%0A            // check under the pillar that there's no gap%0A            for (int i = -radius; i %3C= radius; i++) %7B%0A                for (int j = -radius; j %3C= radius; j++) %7B%0A                    if (i * i + j * j %3C= (radius * radius + 1) && world.getBlockAt(sourceX + i, sourceY - 1, sourceZ + j).getType() != Material.ENDER_STONE) %7B%0A                        return;%0A                    %7D%0A                %7D%0A            %7D%0A%0A            // build a pillar%0A            for (int k = 0; k %3C height && sourceY + k %3C 256; k++) %7B%0A                for (int i = -radius; i %3C= radius; i++) %7B%0A                    for (int j = -radius; j %3C= radius; j++) %7B%0A                        if (i * i + j * j %3C= radius * radius + 1) %7B%0A                            final Block block = world.getBlockAt(sourceX + i, sourceY + k, sourceZ + j);%0A                            block.setType(Material.OBSIDIAN);%0A                        %7D%0A                    %7D%0A                %7D%0A            %7D%0A%0A            // spawn a crystal and bedrock on top of pillar%0A            final Location loc = new Location(world, sourceX + 0.5D, sourceY + height, sourceZ + 0.5D, random.nextFloat() * 360, 0);%0A            world.spawnEntity(loc, EntityType.ENDER_CRYSTAL);%0A            final Block block = world.getBlockAt(sourceX, sourceY + height, sourceZ);%0A            block.setType(Material.BEDROCK);%0A        %7D%0A    %7D%0A%7D%0A

Add ObsidianPillar object