diff --git a/Artifacts/SubServers.Bungee.jar b/Artifacts/SubServers.Bungee.jar index e192fa9b..760c3965 100644 Binary files a/Artifacts/SubServers.Bungee.jar and b/Artifacts/SubServers.Bungee.jar differ diff --git a/Artifacts/SubServers.Client.Bukkit.jar b/Artifacts/SubServers.Client.Bukkit.jar index 868743c7..2b1d5df8 100644 Binary files a/Artifacts/SubServers.Client.Bukkit.jar and b/Artifacts/SubServers.Client.Bukkit.jar differ diff --git a/Artifacts/SubServers.Host.jar b/Artifacts/SubServers.Host.jar index 831f1605..c59132e2 100644 Binary files a/Artifacts/SubServers.Host.jar and b/Artifacts/SubServers.Host.jar differ diff --git a/Artifacts/SubServers.Sync.jar b/Artifacts/SubServers.Sync.jar index 10dcdb7e..d1c41ca1 100644 Binary files a/Artifacts/SubServers.Sync.jar and b/Artifacts/SubServers.Sync.jar differ diff --git a/Javadoc/SubServers.Bungee.jar b/Javadoc/SubServers.Bungee.jar index 5971ba7b..398f2d86 100644 Binary files a/Javadoc/SubServers.Bungee.jar and b/Javadoc/SubServers.Bungee.jar differ diff --git a/Javadoc/SubServers.Client.Bukkit.jar b/Javadoc/SubServers.Client.Bukkit.jar index 9ff1d4a0..23e64efa 100644 Binary files a/Javadoc/SubServers.Client.Bukkit.jar and b/Javadoc/SubServers.Client.Bukkit.jar differ diff --git a/Javadoc/SubServers.Host.jar b/Javadoc/SubServers.Host.jar index 51e3d8c9..d0b82597 100644 Binary files a/Javadoc/SubServers.Host.jar and b/Javadoc/SubServers.Host.jar differ diff --git a/Javadoc/SubServers.Sync.jar b/Javadoc/SubServers.Sync.jar index 1a3b87d2..c7f0a15a 100644 Binary files a/Javadoc/SubServers.Sync.jar and b/Javadoc/SubServers.Sync.jar differ diff --git a/SubServers.Bungee/src.jar b/SubServers.Bungee/src.jar index 419d7a7d..fedbdb89 100644 Binary files a/SubServers.Bungee/src.jar and b/SubServers.Bungee/src.jar differ diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java index 44b2b38d..71b26a6e 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Host/Internal/InternalSubCreator.java @@ -139,6 +139,13 @@ public class InternalSubCreator extends SubCreator { if (template.getBuildOptions().contains("Shell-Location")) { String gitBash = this.gitBash + ((this.gitBash.endsWith(File.separator)) ? "" : File.separator) + "bin" + File.separatorChar + "bash.exe"; + File cache; + if (template.getBuildOptions().getBoolean("Use-Cache", true)) { + cache = new UniversalFile(host.plugin.dir, "SubServers:Cache:Templates:" + template.getName()); + cache.mkdirs(); + } else { + cache = null; + } if (!(System.getProperty("os.name").toLowerCase().indexOf("win") >= 0) && template.getBuildOptions().contains("Permission")) { try { Process process = Runtime.getRuntime().exec("chmod " + template.getBuildOptions().getRawString("Permission") + ' ' + template.getBuildOptions().getRawString("Shell-Location"), null, dir); @@ -154,7 +161,7 @@ public class InternalSubCreator extends SubCreator { try { System.out.println(name + File.separator + "Creator > Launching " + template.getBuildOptions().getRawString("Shell-Location")); - thread.set(Runtime.getRuntime().exec((System.getProperty("os.name").toLowerCase().indexOf("win") >= 0) ? "cmd.exe /c \"\"" + gitBash + "\" --login -i -c \"bash " + template.getBuildOptions().getRawString("Shell-Location") + ' ' + version.toString() + "\"\"" : ("bash " + template.getBuildOptions().getRawString("Shell-Location") + ' ' + version.toString() + " " + System.getProperty("user.home")), null, dir)); + thread.set(Runtime.getRuntime().exec((System.getProperty("os.name").toLowerCase().indexOf("win") >= 0)?"cmd.exe /c \"\"" + gitBash + "\" --login -i -c \"bash " + template.getBuildOptions().getRawString("Shell-Location") + ' ' + version.toString() + " \"" + ((cache == null)?':':cache.toString().replace('\\', '/')) + "\"\"\"":("bash " + template.getBuildOptions().getRawString("Shell-Location") + ' ' + version.toString() + " \"" + ((cache == null)?':':cache.toString()) + '\"'), null, dir)); thread.name().log.set(host.plugin.config.get().getSection("Settings").getBoolean("Log-Creator")); thread.name().file = new File(dir, "SubCreator-" + template.getName() + "-" + version.toString().replace(" ", "@") + ".log"); thread.name().process = thread.get(); @@ -170,6 +177,14 @@ public class InternalSubCreator extends SubCreator { error = true; e.printStackTrace(); } + + if (cache != null) { + if (cache.isDirectory() && cache.listFiles().length == 0) cache.delete(); + cache = new UniversalFile(host.plugin.dir, "SubServers:Cache:Templates"); + if (cache.isDirectory() && cache.listFiles().length == 0) cache.delete(); + cache = new UniversalFile(host.plugin.dir, "SubServers:Cache"); + if (cache.isDirectory() && cache.listFiles().length == 0) cache.delete(); + } } new UniversalFile(dir, "template.yml").delete(); diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/Templates/spigot.zip b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/Templates/spigot.zip index 635aaca2..bd44f518 100644 Binary files a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/Templates/spigot.zip and b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/Templates/spigot.zip differ diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/Templates/sponge.zip b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/Templates/sponge.zip index d1879dfb..9e02e87a 100644 Binary files a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/Templates/sponge.zip and b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/Templates/sponge.zip differ diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/Templates/vanilla.zip b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/Templates/vanilla.zip index 64e336dc..b6e6306f 100644 Binary files a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/Templates/vanilla.zip and b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/Library/Files/Templates/vanilla.zip differ diff --git a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java index 6f409bbc..d9bbd5b7 100644 --- a/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java +++ b/SubServers.Bungee/src/net/ME1312/SubServers/Bungee/SubPlugin.java @@ -60,7 +60,7 @@ public final class SubPlugin extends BungeeCord implements Listener { public SubServer sudo = null; //public static final Version version = new Version("2.13a"); //public static final Version version = new Version(new Version("2.13a"), Version.VersionType.BETA, 1); // TODO Beta Version Setting - public static final Version version = new Version(new Version(new Version("2.13a"), VersionType.PRE_RELEASE, 2), VersionType.BETA, 6); // TODO Beta Version Setting + public static final Version version = new Version(new Version(new Version("2.13a"), VersionType.PRE_RELEASE, 2), VersionType.BETA, 7); // TODO Beta Version Setting public boolean redis = false; public long resetDate = 0; @@ -122,12 +122,12 @@ public final class SubPlugin extends BungeeCord implements Listener { Util.unzip(SubPlugin.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/vanilla.zip"), new UniversalFile(dir, "Templates")); System.out.println("SubServers > Updated ~/SubServers/Templates/Vanilla"); } - if (new UniversalFile(dir, "Templates:Spigot:template.yml").exists() && (new Version((new YAMLConfig(new UniversalFile(dir, "Templates:Spigot:template.yml"))).get().getString("Version", "0")).compareTo(new Version("2.11.2m+"))) != 0) { + if (new UniversalFile(dir, "Templates:Spigot:template.yml").exists() && (new Version((new YAMLConfig(new UniversalFile(dir, "Templates:Spigot:template.yml"))).get().getString("Version", "0")).compareTo(new Version("2.13a+"))) != 0) { Files.move(new UniversalFile(dir, "Templates:Vanilla").toPath(), new UniversalFile(dir, "Templates:Spigot.old" + Math.round(Math.random() * 100000)).toPath()); Util.unzip(SubPlugin.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/spigot.zip"), new UniversalFile(dir, "Templates")); System.out.println("SubServers > Updated ~/SubServers/Templates/Spigot"); } - if (new UniversalFile(dir, "Templates:Sponge:template.yml").exists() && (new Version((new YAMLConfig(new UniversalFile(dir, "Templates:Sponge:template.yml"))).get().getString("Version", "0")).compareTo(new Version("2.11.2m+"))) != 0) { + if (new UniversalFile(dir, "Templates:Sponge:template.yml").exists() && (new Version((new YAMLConfig(new UniversalFile(dir, "Templates:Sponge:template.yml"))).get().getString("Version", "0")).compareTo(new Version("2.13a+"))) != 0) { Files.move(new UniversalFile(dir, "Templates:Vanilla").toPath(), new UniversalFile(dir, "Templates:Sponge.old" + Math.round(Math.random() * 100000)).toPath()); Util.unzip(SubPlugin.class.getResourceAsStream("/net/ME1312/SubServers/Bungee/Library/Files/Templates/sponge.zip"), new UniversalFile(dir, "Templates")); System.out.println("SubServers > Updated ~/SubServers/Templates/Sponge"); diff --git a/SubServers.Client/Bukkit/src.jar b/SubServers.Client/Bukkit/src.jar index 6e6f2be8..dd4aa2e8 100644 Binary files a/SubServers.Client/Bukkit/src.jar and b/SubServers.Client/Bukkit/src.jar differ diff --git a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubPlugin.java b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubPlugin.java index aeb480ed..01683cb1 100644 --- a/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubPlugin.java +++ b/SubServers.Client/Bukkit/src/net/ME1312/SubServers/Client/Bukkit/SubPlugin.java @@ -47,7 +47,7 @@ public final class SubPlugin extends JavaPlugin { super(); //version = new Version(getDescription().getVersion()); //version = new Version(new Version(getDescription().getVersion()), Version.VersionType.BETA, 1); // TODO Beta Version Setting - version = new Version(new Version(new Version(getDescription().getVersion()), VersionType.PRE_RELEASE, 2), VersionType.BETA, 6); // TODO Beta Version Setting + version = new Version(new Version(new Version(getDescription().getVersion()), VersionType.PRE_RELEASE, 2), VersionType.BETA, 7); // TODO Beta Version Setting } /** diff --git a/SubServers.Host/src.jar b/SubServers.Host/src.jar index be3695b1..8b351b5e 100644 Binary files a/SubServers.Host/src.jar and b/SubServers.Host/src.jar differ diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java b/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java index 359e471a..aa34fdd2 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/ExHost.java @@ -53,7 +53,7 @@ public final class ExHost { //public final Version version = new Version("2.13a"); //public final Version version = new Version(new Version("2.13a"), Version.VersionType.BETA, 1); // TODO Beta Version Setting - public final Version version = new Version(new Version(new Version("2.13a"), VersionType.PRE_RELEASE, 2), VersionType.BETA, 6); // TODO Beta Version Setting + public final Version version = new Version(new Version(new Version("2.13a"), VersionType.PRE_RELEASE, 2), VersionType.BETA, 7); // TODO Beta Version Setting public final SubAPI api = new SubAPI(this); private ConsoleReader jline; diff --git a/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubCreator.java b/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubCreator.java index c9fc3d7b..acebcd45 100644 --- a/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubCreator.java +++ b/SubServers.Host/src/net/ME1312/SubServers/Host/Executable/SubCreator.java @@ -263,8 +263,14 @@ public class SubCreator { } if (template.getBuildOptions().contains("Shell-Location")) { - String git = (System.getenv("ProgramFiles(x86)") == null)?Pattern.compile("%(ProgramFiles)\\(x86\\)%", Pattern.CASE_INSENSITIVE).matcher(host.host.getRawString("Git-Bash")).replaceAll("%$1%"):host.host.getRawString("Git-Bash"); - String gitBash = git + ((git.endsWith(File.separator))?"":File.separator) + "bin" + File.separatorChar + "bash.exe"; + String gitBash = host.host.getRawString("Git-Bash") + ((host.host.getRawString("Git-Bash").endsWith(File.separator)) ? "" : File.separator) + "bin" + File.separatorChar + "bash.exe"; + File cache; + if (template.getBuildOptions().getBoolean("Use-Cache", true)) { + cache = new UniversalFile(host.dir, "Cache:Templates:" + template.getName()); + cache.mkdirs(); + } else { + cache = null; + } if (!(System.getProperty("os.name").toLowerCase().indexOf("win") >= 0) && template.getBuildOptions().contains("Permission")) { try { Process process = Runtime.getRuntime().exec("chmod " + template.getBuildOptions().getRawString("Permission") + ' ' + template.getBuildOptions().getRawString("Shell-Location"), null, dir); @@ -283,7 +289,7 @@ public class SubCreator { try { thread.name().logger.info.println("Launching " + template.getBuildOptions().getRawString("Shell-Location")); host.subdata.sendPacket(new PacketOutExLogMessage(address, "Launching " + template.getBuildOptions().getRawString("Shell-Location"))); - thread.set(Runtime.getRuntime().exec((System.getProperty("os.name").toLowerCase().indexOf("win") >= 0)?"cmd.exe /c \"\"" + gitBash + "\" --login -i -c \"bash " + template.getBuildOptions().getRawString("Shell-Location") + ' ' + version.toString() + "\"\"":("bash " + template.getBuildOptions().getRawString("Shell-Location") + ' ' + version.toString() + " " + System.getProperty("user.home")), null, dir)); + thread.set(Runtime.getRuntime().exec((System.getProperty("os.name").toLowerCase().indexOf("win") >= 0)?"cmd.exe /c \"\"" + gitBash + "\" --login -i -c \"bash " + template.getBuildOptions().getRawString("Shell-Location") + ' ' + version.toString() + " \"" + ((cache == null)?':':cache.toString().replace('\\', '/')) + "\"\"\"":("bash " + template.getBuildOptions().getRawString("Shell-Location") + ' ' + version.toString() + " \"" + ((cache == null)?':':cache.toString()) + '\"'), null, dir)); thread.name().file = new File(dir, "SubCreator-" + template.getName() + "-" + version.toString().replace(" ", "@") + ".log"); thread.name().process = thread.get(); thread.name().start(); @@ -298,6 +304,14 @@ public class SubCreator { error = true; thread.name().logger.error.println(e); } + + if (cache != null) { + if (cache.isDirectory() && cache.listFiles().length == 0) cache.delete(); + cache = new UniversalFile(host.dir, "Cache:Templates"); + if (cache.isDirectory() && cache.listFiles().length == 0) cache.delete(); + cache = new UniversalFile(host.dir, "Cache"); + if (cache.isDirectory() && cache.listFiles().length == 0) cache.delete(); + } } new UniversalFile(dir, "template.yml").delete(); diff --git a/SubServers.Sync/src.jar b/SubServers.Sync/src.jar index 5842164a..84761db3 100644 Binary files a/SubServers.Sync/src.jar and b/SubServers.Sync/src.jar differ diff --git a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java index cbd21ade..abe95bf1 100644 --- a/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java +++ b/SubServers.Sync/src/net/ME1312/SubServers/Sync/SubPlugin.java @@ -50,7 +50,7 @@ public final class SubPlugin extends BungeeCord implements Listener { public SubDataClient subdata = null; //public static final Version version = new Version("2.13a"); //public static final Version version = new Version(new Version("2.13a"), Version.VersionType.BETA, 1); // TODO Beta Version Setting - public static final Version version = new Version(new Version(new Version("2.13a"), VersionType.PRE_RELEASE, 2), VersionType.BETA, 6); // TODO Beta Version Setting + public static final Version version = new Version(new Version(new Version("2.13a"), VersionType.PRE_RELEASE, 2), VersionType.BETA, 7); // TODO Beta Version Setting public long lastReload = -1;