package me.lethunderhawk.world.island; import me.lethunderhawk.fluxapi.FluxService; import me.lethunderhawk.main.BazaarFlux; import org.bukkit.*; import org.bukkit.generator.ChunkGenerator; import java.util.Random; public final class IslandWorld { public World createWorldInFolder(String worldName, String folderName, World.Environment environment) { String worldPath = folderName + "/" + worldName; WorldCreator creator = new WorldCreator(worldPath); creator.environment(environment); creator.type(WorldType.NORMAL); creator.generateStructures(false); if (folderName.equals("islands")) { creator.generator(new EmptyChunkGenerator()); } World world = creator.createWorld(); if (world != null) { FluxService.get(BazaarFlux.class).getLogger().info("World " + worldName + " created in " + folderName); world.setGameRule(GameRule.DO_MOB_SPAWNING, false); world.setGameRule(GameRule.ANNOUNCE_ADVANCEMENTS, false); world.setGameRule(GameRule.KEEP_INVENTORY, true); world.setSpawnLocation(0,100,0); world.setVoidDamageAmount(1000f); } return world; } public static final class EmptyChunkGenerator extends ChunkGenerator{ @Override public ChunkData generateChunkData( World world, Random random, int chunkX, int chunkZ, BiomeGrid biome ) { // Completely empty world return createChunkData(world); } @Override public boolean shouldGenerateNoise() { return false; } @Override public boolean shouldGenerateSurface() { return false; } @Override public boolean shouldGenerateBedrock() { return false; } @Override public boolean shouldGenerateCaves() { return false; } @Override public boolean shouldGenerateDecorations() { return false; } @Override public boolean shouldGenerateMobs() { return false; } } }