Update of Preview command.

Now saves the world!
This commit is contained in:
Steffion 2013-07-28 21:02:51 +02:00
parent 74be1f106e
commit a8b407b258
2 changed files with 32 additions and 14 deletions

View File

@ -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());
}

View File

@ -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 {