package me.lethunderhawk.world.util; import me.lethunderhawk.fluxapi.FluxService; import me.lethunderhawk.main.Main; import me.lethunderhawk.world.wrapper.CustomWorld; import org.bukkit.Bukkit; import org.bukkit.World; import org.bukkit.WorldCreator; import org.bukkit.entity.Player; import java.io.File; public class WorldManager { private final Main plugin; public WorldManager() { this.plugin = FluxService.get(Main.class); } public CustomWorld getOrCreateIslandWorld(Player player) { String worldName = "island_" + player.getUniqueId().toString(); String worldPath = "islands/" + worldName; World world = Bukkit.getWorld(worldPath); if (world == null) { // Überprüfen, ob Weltdateien existieren File worldFolder = new File(plugin.getServer().getWorldContainer(), worldPath); if (worldFolder.exists()) { // Existierende Welt laden world = new WorldCreator(worldPath).createWorld(); } else { // Neue Welt erstellen world = WorldUtils.createIslandWorld(player.getUniqueId().toString()); } } return new CustomWorld(world); } public void warpToIsland(Player player) { CustomWorld world = getOrCreateIslandWorld(player); world.warpIntoWorld(player); } public void warpBackFromIsland(Player player) { WorldManager manager = FluxService.get(WorldManager.class); CustomWorld cWorld = manager.getOrCreateIslandWorld(player); if(player.getWorld() != cWorld.getWorld()) { player.sendMessage("§cYou are not on an island!"); }else returnPlayer(player, cWorld); } private void returnPlayer(Player player, CustomWorld cWorld) { cWorld.warpBack(player); } /*public List getDungeonWorlds() { List dungeons = new ArrayList<>(); File dungeonsDir = new File(plugin.getServer().getWorldContainer(), "dungeons"); if (dungeonsDir.exists() && dungeonsDir.isDirectory()) { for (File worldDir : dungeonsDir.listFiles()) { if (worldDir.isDirectory()) { String worldPath = "dungeons/" + worldDir.getName(); World world = Bukkit.getWorld(worldPath); if (world == null) { // Welt laden, falls nicht bereits geladen world = new WorldCreator(worldPath).createWorld(); } if (world != null) { dungeons.add(world); } } } } return dungeons; }*/ }