IslandWorld.java 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package me.lethunderhawk.world.island;
  2. import me.lethunderhawk.fluxapi.FluxService;
  3. import me.lethunderhawk.main.BazaarFlux;
  4. import org.bukkit.*;
  5. import org.bukkit.generator.ChunkGenerator;
  6. import java.util.Random;
  7. public final class IslandWorld {
  8. public World createWorldInFolder(String worldName, String folderName,
  9. World.Environment environment) {
  10. String worldPath = folderName + "/" + worldName;
  11. WorldCreator creator = new WorldCreator(worldPath);
  12. creator.environment(environment);
  13. creator.type(WorldType.NORMAL);
  14. creator.generateStructures(false);
  15. if (folderName.equals("islands")) {
  16. creator.generator(new EmptyChunkGenerator());
  17. }
  18. World world = creator.createWorld();
  19. if (world != null) {
  20. FluxService.get(BazaarFlux.class).getLogger().info("World " + worldName + " created in " + folderName);
  21. world.setGameRule(GameRule.DO_MOB_SPAWNING, false);
  22. world.setGameRule(GameRule.ANNOUNCE_ADVANCEMENTS, false);
  23. world.setGameRule(GameRule.KEEP_INVENTORY, true);
  24. world.setSpawnLocation(0,100,0);
  25. world.setVoidDamageAmount(1000f);
  26. }
  27. return world;
  28. }
  29. public static final class EmptyChunkGenerator extends ChunkGenerator{
  30. @Override
  31. public ChunkData generateChunkData(
  32. World world,
  33. Random random,
  34. int chunkX,
  35. int chunkZ,
  36. BiomeGrid biome
  37. ) {
  38. // Completely empty world
  39. return createChunkData(world);
  40. }
  41. @Override
  42. public boolean shouldGenerateNoise() { return false; }
  43. @Override
  44. public boolean shouldGenerateSurface() { return false; }
  45. @Override
  46. public boolean shouldGenerateBedrock() { return false; }
  47. @Override
  48. public boolean shouldGenerateCaves() { return false; }
  49. @Override
  50. public boolean shouldGenerateDecorations() { return false; }
  51. @Override
  52. public boolean shouldGenerateMobs() { return false; }
  53. }
  54. }