diff options
Diffstat (limited to 'src/main/java/net/tylermurphy/hideAndSeek/command')
5 files changed, 79 insertions, 71 deletions
diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java index a2554d1..2befd73 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SaveMap.java @@ -2,15 +2,6 @@ package net.tylermurphy.hideAndSeek.command; import static net.tylermurphy.hideAndSeek.configuration.Config.*; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; -import java.util.ArrayList; -import java.util.Arrays; - import org.bukkit.Bukkit; import org.bukkit.command.CommandSender; import org.bukkit.scheduler.BukkitRunnable; @@ -36,66 +27,15 @@ public class SaveMap implements ICommand { Bukkit.getServer().getWorld(spawnWorld).save(); BukkitRunnable runnable = new BukkitRunnable() { public void run() { - File current = new File(Main.root+File.separator+spawnWorld); - if(current.exists()) { - File temp_destenation = new File(Main.root+File.separator+"temp_hideandseek_"+spawnWorld); - File destenation = new File(Main.root+File.separator+"hideandseek_"+spawnWorld); - copyFileStructure(current, temp_destenation); - if(destenation.exists()) { - deleteDirectory(destenation); - destenation.mkdir(); - } - temp_destenation.renameTo(destenation); - sender.sendMessage(messagePrefix + message("MAPSAVE_END")); - runningBackup = false; - } else { - sender.sendMessage(errorPrefix + message("MAPSAVE_ERROR")); - } + sender.sendMessage( + Main.plugin.worldLoader.save() + ); + runningBackup = false; } }; runnable.runTaskAsynchronously(Main.plugin); runningBackup = true; } - - private static void copyFileStructure(File source, File target){ - try { - ArrayList<String> ignore = new ArrayList<>(Arrays.asList("uid.dat", "session.lock")); - if(!ignore.contains(source.getName())) { - if(source.isDirectory()) { - if(!target.exists()) - if (!target.mkdirs()) - throw new IOException("Couldn't create world directory!"); - String files[] = source.list(); - for (String file : files) { - File srcFile = new File(source, file); - File destFile = new File(target, file); - copyFileStructure(srcFile, destFile); - } - } else { - InputStream in = new FileInputStream(source); - OutputStream out = new FileOutputStream(target); - byte[] buffer = new byte[1024]; - int length; - while ((length = in.read(buffer)) > 0) - out.write(buffer, 0, length); - in.close(); - out.close(); - } - } - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - private boolean deleteDirectory(File directoryToBeDeleted) { - File[] allContents = directoryToBeDeleted.listFiles(); - if (allContents != null) { - for (File file : allContents) { - deleteDirectory(file); - } - } - return directoryToBeDeleted.delete(); - } public String getLabel() { return "saveMap"; diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/SetBounds.java b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBounds.java new file mode 100644 index 0000000..210f7fe --- /dev/null +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/SetBounds.java @@ -0,0 +1,67 @@ +package net.tylermurphy.hideAndSeek.command; + +import static net.tylermurphy.hideAndSeek.configuration.Config.*; + +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import net.tylermurphy.hideAndSeek.Main; +import static net.tylermurphy.hideAndSeek.configuration.Localization.*; + +public class SetBounds implements ICommand { + + public void execute(CommandSender sender, String[] args) { + if(!Main.plugin.status.equals("Standby")) { + sender.sendMessage(errorPrefix + message("GAME_INPROGRESS")); + return; + } + if(spawnPosition == null) { + sender.sendMessage(errorPrefix + message("ERROR_GAME_SPAWN")); + return; + } + Player player = (Player) sender; + if(!player.getWorld().getName().equals(spawnWorld)){ + sender.sendMessage(errorPrefix + message("BOUNDS_WRONG_WORLD")); + return; + } + if(saveMaxX == 0) { + addToConfig("bounds.max.x", player.getLocation().getBlockX()); + saveMaxX = player.getLocation().getBlockX(); + } else if(saveMaxX < player.getLocation().getBlockX()) { + addToConfig("bounds.max.x", player.getLocation().getBlockX()); + addToConfig("bounds.min.x", saveMaxX); + saveMinX = saveMaxX; + saveMaxX = player.getLocation().getBlockX(); + } else { + addToConfig("bounds.min.x", player.getLocation().getBlockX()); + saveMinX = player.getLocation().getBlockX(); + } + if(saveMaxZ == 0) { + addToConfig("bounds.max.z", player.getLocation().getBlockZ()); + saveMaxZ = player.getLocation().getBlockZ(); + } else if(saveMaxZ < player.getLocation().getBlockZ()) { + addToConfig("bounds.max.z", player.getLocation().getBlockZ()); + addToConfig("bounds.min.z", saveMaxZ); + saveMinZ = saveMaxZ; + saveMaxZ = player.getLocation().getBlockZ(); + } else { + addToConfig("bounds.min.z", player.getLocation().getBlockZ()); + saveMinZ = player.getLocation().getBlockZ(); + } + sender.sendMessage(messagePrefix + message("BOUNDS")); + saveConfig(); + } + + public String getLabel() { + return "setBounds"; + } + + public String getUsage() { + return ""; + } + + public String getDescription() { + return "Sets the map bounds for the game."; + } + +} diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java index 8be0141..f47503a 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Setup.java @@ -28,9 +28,13 @@ public class Setup implements ICommand { msg = msg + "\n" + message("SETUP_EXIT").toString(); count++; } + if(saveMinX == 0 || saveMinZ == 0 || saveMaxX == 0 || saveMaxZ == 0) { + msg = msg + "\n" + message("SETUP_BOUNDS").toString(); + count++; + } File destenation = new File(Main.root+File.separator+"hideandseek_"+spawnWorld); if(!destenation.exists()) { - msg = msg + "\n" + message("SETUP_MAPSAVE").toString(); + msg = msg + "\n" + message("SETUP_SAVEMAP").toString(); count++; } if(count < 1) { diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java index 89cbc09..4bedd2f 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Start.java @@ -49,9 +49,9 @@ public class Start implements ICommand { return; } if(Bukkit.getServer().getWorld("hideandseek_"+spawnWorld) != null) { - Util.rollback("hideandseek_"+spawnWorld); + Main.plugin.worldLoader.rollback(); } else { - Util.loadMap("hideandseek_"+spawnWorld); + Main.plugin.worldLoader.loadMap(); } String seekerName; if(args.length < 1) { @@ -124,9 +124,6 @@ public class Start implements ICommand { if(gameLength > 0) { Main.plugin.timeLeft = gameLength; - for(Player player : Main.plugin.board.getPlayers()) { - player.setLevel(gameLength); - } } } }, 20 * 30); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java b/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java index 810c071..52bf310 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/command/Stop.java @@ -58,7 +58,7 @@ public class Stop implements ICommand { Packet.setGlow(player, temp, false); } } - Util.unloadMap("hideandseek_"+spawnWorld); + Main.plugin.worldLoader.unloadMap(); Main.plugin.board.reloadLobbyBoards(); } |