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) @EventHandler(priority = EventPriority.HIGHEST)
public void onPlayerTeleportEvent(PlayerTeleportEvent event) { public void onPlayerTeleportEvent(final PlayerTeleportEvent event) {
final Player player = event.getPlayer(); final Player player = event.getPlayer();
MessageM.broadcastMessage("-2", false);
if (W.previewWorlds.contains(event.getFrom().getWorld().getName())) { if (W.previewWorlds.contains(event.getFrom().getWorld().getName())) {
MessageM.broadcastMessage("-1", false);
if (!event.getFrom().getWorld().getName() if (!event.getFrom().getWorld().getName()
.equals(event.getTo().getWorld().getName())) { .equals(event.getTo().getWorld().getName())) {
MessageM.broadcastMessage("0", false);
final String worldLoc = event.getFrom().getWorld().getName(); final String worldLoc = event.getFrom().getWorld().getName();
boolean unload = true; boolean unload = true;
for (Player pl : Bukkit.getOnlinePlayers()) { for (Player pl : Bukkit.getOnlinePlayers()) {
MessageM.broadcastMessage("1", false);
if (pl.getLocation().getWorld().getName().equals(worldLoc)) { if (pl.getLocation().getWorld().getName().equals(worldLoc)) {
MessageM.broadcastMessage("2", false);
if (!pl.equals(player)) { if (!pl.equals(player)) {
MessageM.broadcastMessage("3a", false);
unload = false; unload = false;
} else {
MessageM.broadcastMessage("3b", false);
} }
} }
} }
MessageM.broadcastMessage("4", false);
if (unload) { if (unload) {
MessageM.broadcastMessage("5", false);
Bukkit.getScheduler().runTaskLaterAsynchronously( Bukkit.getScheduler().runTaskLaterAsynchronously(
this.plugin, new Runnable() { this.plugin, new Runnable() {
@Override @Override
public void run() { public void run() {
Bukkit.unloadWorld( Bukkit.unloadWorld(
Bukkit.getWorld(worldLoc), false); Bukkit.getWorld(worldLoc), true);
MessageM.sendFMessage( MessageM.sendFMessage(
player, player,
ConfigC.normal_previewWorldUnloaded, ConfigC.normal_previewWorldUnloaded,
@ -65,6 +55,32 @@ public class PlayerListener implements Listener {
} }
}, 20); }, 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( Bukkit.getScheduler().runTaskLaterAsynchronously(
this.plugin, new Runnable() { this.plugin, new Runnable() {
@Override @Override
@ -80,7 +96,7 @@ public class PlayerListener implements Listener {
true); true);
} }
}, 40); }, 60);
W.previewWorlds W.previewWorlds
.remove(event.getFrom().getWorld().getName()); .remove(event.getFrom().getWorld().getName());
} }

View File

@ -24,8 +24,10 @@ public class FileM {
for (String file : files) { for (String file : files) {
File srcFile = new File(src, file); File srcFile = new File(src, file);
File destFile = new File(dest, file); File destFile = new File(dest, file);
if (!srcFile.getName().equals("uid.dat")) {
copyFolder(srcFile, destFile); copyFolder(srcFile, destFile);
} }
}
} else { } else {
InputStream in = new FileInputStream(src); InputStream in = new FileInputStream(src);