Makes the software build Spigot and CraftBukkit jars if the latest version is chosen
This commit is contained in:
@ -1,5 +1,10 @@
|
||||
package net.knarcraft.minecraftserverlauncher.server.servertypes;
|
||||
|
||||
import net.knarcraft.minecraftserverlauncher.Main;
|
||||
import net.knarcraft.minecraftserverlauncher.profile.ServerLauncherController;
|
||||
import net.knarcraft.minecraftserverlauncher.userinterface.GUI;
|
||||
import net.knarcraft.minecraftserverlauncher.utility.JarBuilder;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.file.Paths;
|
||||
|
||||
@ -31,7 +36,31 @@ public class CraftBukkit extends AbstractServerType {
|
||||
String targetFile = this.getName() + version + ".jar";
|
||||
String file = downloadURLPart + version + ".jar";
|
||||
File filePath = new File(folder + targetFile);
|
||||
return filePath.isFile() || downloadFile(downloadURL + file, Paths.get(filePath.toURI()));
|
||||
|
||||
if (version.equals("Latest")) {
|
||||
return filePath.isFile() || buildJar(folder);
|
||||
} else {
|
||||
return filePath.isFile() || downloadFile(downloadURL + file, Paths.get(filePath.toURI()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds the necessary .jar file
|
||||
*
|
||||
* @param folder <p>The folder the build file should be moved to</p>
|
||||
* @return <p>True if the build was successful</p>
|
||||
*/
|
||||
private boolean buildJar(String folder) {
|
||||
String buildToolsDirectory = Main.getApplicationWorkDirectory() + File.separator + "files" + File.separator +
|
||||
"BuildTools" + File.separator;
|
||||
|
||||
GUI gui = ServerLauncherController.getInstance().getGUI();
|
||||
JarBuilder jarBuilder = new JarBuilder(buildToolsDirectory, folder, gui);
|
||||
if (this instanceof Spigot) {
|
||||
return jarBuilder.buildSpigotJar();
|
||||
} else {
|
||||
return jarBuilder.buildBukkitJar();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -42,24 +42,32 @@ public class JarBuilder {
|
||||
/**
|
||||
* Builds the latest version of the spigot .jar file
|
||||
*/
|
||||
public void buildSpigotJar() {
|
||||
public boolean buildSpigotJar() {
|
||||
gui.setStatus("Building Spigot jar ...");
|
||||
downloadBuildTools();
|
||||
ProcessBuilder processBuilder = new ProcessBuilder(javaCommand, "-jar", "BuildTools.jar", "--rev",
|
||||
"latest", "--output-dir", jarDirectory);
|
||||
if (executeBuildProcess(processBuilder) && moveBuiltJar("spigot-", "SpigotLatest.jar")) {
|
||||
gui.setStatus("Finished moving spigot.jar");
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Builds the latest version of the craftbukkit .jar file
|
||||
*/
|
||||
public void buildBukkitJar() {
|
||||
public boolean buildBukkitJar() {
|
||||
gui.setStatus("Building Bukkit jar ...");
|
||||
downloadBuildTools();
|
||||
ProcessBuilder processBuilder = new ProcessBuilder(javaCommand, "-jar", "BuildTools.jar", "--compile",
|
||||
"craftbukkit", "--rev", "latest", "--output-dir", jarDirectory);
|
||||
if (executeBuildProcess(processBuilder) && moveBuiltJar("craftbukkit-", "BukkitLatest.jar")) {
|
||||
gui.setStatus("Finished moving craftbukkit.jar");
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -133,7 +141,7 @@ public class JarBuilder {
|
||||
writer.flush();
|
||||
|
||||
if (process.exitValue() == 0) {
|
||||
gui.showMessage("Jar building process finished successfully.");
|
||||
gui.setStatus("Jar building process finished successfully.");
|
||||
return true;
|
||||
} else {
|
||||
gui.showError("Jar building process failed with exit code " + process.exitValue() +
|
||||
|
Reference in New Issue
Block a user