WorldManager.java 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package me.lethunderhawk.world.util;
  2. import me.lethunderhawk.fluxapi.FluxService;
  3. import me.lethunderhawk.main.Main;
  4. import me.lethunderhawk.world.wrapper.CustomWorld;
  5. import org.bukkit.Bukkit;
  6. import org.bukkit.World;
  7. import org.bukkit.WorldCreator;
  8. import org.bukkit.entity.Player;
  9. import java.io.File;
  10. public class WorldManager {
  11. private final Main plugin;
  12. public WorldManager() {
  13. this.plugin = FluxService.get(Main.class);
  14. }
  15. public CustomWorld getOrCreateIslandWorld(Player player) {
  16. String worldName = "island_" + player.getUniqueId().toString();
  17. String worldPath = "islands/" + worldName;
  18. World world = Bukkit.getWorld(worldPath);
  19. if (world == null) {
  20. // Überprüfen, ob Weltdateien existieren
  21. File worldFolder = new File(plugin.getServer().getWorldContainer(), worldPath);
  22. if (worldFolder.exists()) {
  23. // Existierende Welt laden
  24. world = new WorldCreator(worldPath).createWorld();
  25. } else {
  26. // Neue Welt erstellen
  27. world = WorldUtils.createIslandWorld(player.getUniqueId().toString());
  28. }
  29. }
  30. return new CustomWorld(world);
  31. }
  32. public void warpToIsland(Player player) {
  33. CustomWorld world = getOrCreateIslandWorld(player);
  34. world.warpIntoWorld(player);
  35. }
  36. public void warpBackFromIsland(Player player) {
  37. WorldManager manager = FluxService.get(WorldManager.class);
  38. CustomWorld cWorld = manager.getOrCreateIslandWorld(player);
  39. if(player.getWorld() != cWorld.getWorld()) {
  40. player.sendMessage("§cYou are not on an island!");
  41. }else returnPlayer(player, cWorld);
  42. }
  43. private void returnPlayer(Player player, CustomWorld cWorld) {
  44. cWorld.warpBack(player);
  45. }
  46. /*public List<World> getDungeonWorlds() {
  47. List<World> dungeons = new ArrayList<>();
  48. File dungeonsDir = new File(plugin.getServer().getWorldContainer(), "dungeons");
  49. if (dungeonsDir.exists() && dungeonsDir.isDirectory()) {
  50. for (File worldDir : dungeonsDir.listFiles()) {
  51. if (worldDir.isDirectory()) {
  52. String worldPath = "dungeons/" + worldDir.getName();
  53. World world = Bukkit.getWorld(worldPath);
  54. if (world == null) {
  55. // Welt laden, falls nicht bereits geladen
  56. world = new WorldCreator(worldPath).createWorld();
  57. }
  58. if (world != null) {
  59. dungeons.add(world);
  60. }
  61. }
  62. }
  63. }
  64. return dungeons;
  65. }*/
  66. }