Makes the software build Spigot and CraftBukkit jars if the latest version is chosen

This commit is contained in:
2021-08-02 21:50:12 +02:00
parent f1eead3807
commit 0018816d90
3 changed files with 43 additions and 6 deletions

View File

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

View File

@ -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() +