Makes some improvements
All checks were successful
KnarCraft/Minecraft-Server-Launcher/pipeline/head This commit looks good

Saves the downloaded BuildTools version to the server version container
Adds a check to see whether the BuildTools file exists
Adds a helper function for reading local files
This commit is contained in:
2021-08-02 16:09:22 +02:00
parent 51ceac69da
commit 043f2045e6
12 changed files with 77 additions and 31 deletions

View File

@ -1,6 +1,7 @@
package net.knarcraft.minecraftserverlauncher.utility;
import net.knarcraft.minecraftserverlauncher.Main;
import net.knarcraft.minecraftserverlauncher.server.ServerVersionContainer;
import java.io.BufferedReader;
import java.io.BufferedWriter;
@ -12,13 +13,14 @@ import java.nio.file.Paths;
public class JarBuilder {
private String downloadedBuildToolsVersion = "#124";
private final String buildDirectory;
private final String jarDirectory;
private final ServerVersionContainer versionContainer;
public JarBuilder(String buildDirectory, String jarDirectory) {
public JarBuilder(String buildDirectory, String jarDirectory, ServerVersionContainer versionContainer) {
this.buildDirectory = buildDirectory;
this.jarDirectory = jarDirectory;
this.versionContainer = versionContainer;
}
/**
@ -26,7 +28,7 @@ public class JarBuilder {
*/
public void buildSpigotJar() {
downloadBuildTools();
ProcessBuilder processBuilder = new ProcessBuilder("C:\\Program Files\\Java\\jdk-16.0.1\\bin\\java.exe", "-jar", "BuildTools.jar", "--rev",
ProcessBuilder processBuilder = new ProcessBuilder("java", "-jar", "BuildTools.jar", "--rev",
"latest", "--output-dir", jarDirectory);
executeBuildProcess(processBuilder);
System.out.println("Finished building spigot .jar. Moving it to the correct location");
@ -39,7 +41,7 @@ public class JarBuilder {
*/
public void buildBukkitJar() {
downloadBuildTools();
ProcessBuilder processBuilder = new ProcessBuilder("C:\\Program Files\\Java\\jdk-16.0.1\\bin\\java.exe", "-jar", "BuildTools.jar", "--compile",
ProcessBuilder processBuilder = new ProcessBuilder("java", "-jar", "BuildTools.jar", "--compile",
"craftbukkit", "--rev", "latest", "--output-dir", jarDirectory);
executeBuildProcess(processBuilder);
System.out.println("Finished building craftbukkit .jar. Moving it to the correct location");
@ -53,11 +55,16 @@ public class JarBuilder {
public void downloadBuildTools() {
try {
String latestVersion = getLatestBuildToolsVersion();
if (!latestVersion.equals(downloadedBuildToolsVersion)) {
boolean success = CommonFunctions.downloadFile("https://hub.spigotmc.org/jenkins/job/BuildTools/" +
"lastSuccessfulBuild/artifact/target/BuildTools.jar", Paths.get(buildDirectory + "BuildTools.jar"));
boolean exists = new File(buildDirectory + "BuildTools.jar").exists();
boolean isUpdated = latestVersion.equals(versionContainer.getDownloadedBuildToolsVersion());
if (!exists || !isUpdated) {
String buildToolsURL = "https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/artifact/target/BuildTools.jar";
boolean success = CommonFunctions.downloadFile(buildToolsURL, Paths.get(buildDirectory + "BuildTools.jar"));
if (!success) {
Main.getController().getGUI().setStatus("Unable to download the latest BuildTools");
} else {
versionContainer.setDownloadedBuildToolsVersion(latestVersion);
}
}
} catch (IOException e) {
@ -120,7 +127,7 @@ public class JarBuilder {
*/
String getLatestBuildToolsVersion() throws IOException {
String versionDocument;
versionDocument = CommonFunctions.readFile("https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/");
versionDocument = CommonFunctions.readRemoteFile("https://hub.spigotmc.org/jenkins/job/BuildTools/lastSuccessfulBuild/");
return CommonFunctions.stringBetween(versionDocument, "BuildTools #", " [");
}