diff --git a/src/nl/Steffion/BlockHunt/Listeners/PlayerListener.java b/src/nl/Steffion/BlockHunt/Listeners/PlayerListener.java index 696bbf1..434af1d 100644 --- a/src/nl/Steffion/BlockHunt/Listeners/PlayerListener.java +++ b/src/nl/Steffion/BlockHunt/Listeners/PlayerListener.java @@ -25,39 +25,29 @@ public class PlayerListener implements Listener { } @EventHandler(priority = EventPriority.HIGHEST) - public void onPlayerTeleportEvent(PlayerTeleportEvent event) { + public void onPlayerTeleportEvent(final PlayerTeleportEvent event) { final Player player = event.getPlayer(); - MessageM.broadcastMessage("-2", false); if (W.previewWorlds.contains(event.getFrom().getWorld().getName())) { - MessageM.broadcastMessage("-1", false); if (!event.getFrom().getWorld().getName() .equals(event.getTo().getWorld().getName())) { - MessageM.broadcastMessage("0", false); final String worldLoc = event.getFrom().getWorld().getName(); boolean unload = true; for (Player pl : Bukkit.getOnlinePlayers()) { - MessageM.broadcastMessage("1", false); if (pl.getLocation().getWorld().getName().equals(worldLoc)) { - MessageM.broadcastMessage("2", false); if (!pl.equals(player)) { - MessageM.broadcastMessage("3a", false); unload = false; - } else { - MessageM.broadcastMessage("3b", false); } } } - MessageM.broadcastMessage("4", false); if (unload) { - MessageM.broadcastMessage("5", false); Bukkit.getScheduler().runTaskLaterAsynchronously( this.plugin, new Runnable() { @Override public void run() { Bukkit.unloadWorld( - Bukkit.getWorld(worldLoc), false); + Bukkit.getWorld(worldLoc), true); MessageM.sendFMessage( player, ConfigC.normal_previewWorldUnloaded, @@ -65,6 +55,32 @@ public class PlayerListener implements Listener { } }, 20); + Bukkit.getScheduler().runTaskLaterAsynchronously( + this.plugin, new Runnable() { + @Override + public void run() { + try { + String[] worldPlace = event.getFrom() + .getWorld().getName() + .split("/"); + String[] worldName = worldPlace[worldPlace.length - 1] + .split("_"); + File destFolder = new File("plugins/" + + W.pluginName + + "/defaultArenas/" + + worldName[0]); + if (destFolder.exists()) { + FileM.delete(destFolder); + } + + FileM.copyFolder(new File(worldLoc), + destFolder); + } catch (IOException e) { + e.printStackTrace(); + } + } + }, 40); + Bukkit.getScheduler().runTaskLaterAsynchronously( this.plugin, new Runnable() { @Override @@ -80,7 +96,7 @@ public class PlayerListener implements Listener { true); } - }, 40); + }, 60); W.previewWorlds .remove(event.getFrom().getWorld().getName()); } diff --git a/src/nl/Steffion/BlockHunt/Managers/FileM.java b/src/nl/Steffion/BlockHunt/Managers/FileM.java index e04a9ff..3ef862a 100644 --- a/src/nl/Steffion/BlockHunt/Managers/FileM.java +++ b/src/nl/Steffion/BlockHunt/Managers/FileM.java @@ -24,7 +24,9 @@ public class FileM { for (String file : files) { File srcFile = new File(src, file); File destFile = new File(dest, file); - copyFolder(srcFile, destFile); + if (!srcFile.getName().equals("uid.dat")) { + copyFolder(srcFile, destFile); + } } } else {