65 lines
2.0 KiB
Java
65 lines
2.0 KiB
Java
package net.knarcraft.serverlauncher;
|
|
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
import java.net.URL;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Path;
|
|
import java.nio.file.StandardCopyOption;
|
|
import java.util.Scanner;
|
|
|
|
/**
|
|
* A holding class for methods shared between classes.
|
|
*
|
|
* @author Kristian Knarvik <kristian.knarvik@knett.no>
|
|
* @version 1.0.0
|
|
* @since 1.0.0
|
|
*/
|
|
public class Shared {
|
|
/**
|
|
* Finds a substring between two substrings in a string.
|
|
*
|
|
* @param string The string containing the substrings
|
|
* @param start The substring before the wanted substring
|
|
* @param end The substring after the wanted substring
|
|
* @return The wanted substring.
|
|
*/
|
|
public static String stringBetween(String string, String start, String end) {
|
|
int startPos = string.indexOf(start) + start.length();
|
|
if (!string.contains(start) || string.indexOf(end, startPos) < startPos) {
|
|
return "";
|
|
}
|
|
return string.substring(startPos, string.indexOf(end, startPos));
|
|
}
|
|
|
|
/**
|
|
* Reads a file from a website.
|
|
* This is used to find the newest version of jars and the software.
|
|
*
|
|
* @param path The full url of the file to read
|
|
* @return True if successful. False otherwise
|
|
*/
|
|
public static String readFile(String path) throws IOException {
|
|
URL url = new URL(path);
|
|
return new Scanner(url.openStream()).useDelimiter("\\Z").next();
|
|
}
|
|
|
|
/**
|
|
* Downloads a file from a website.
|
|
*
|
|
* @param path The full url of the file to download.
|
|
* @param outfile The file to save to
|
|
* @return True if successful. False otherwise
|
|
*/
|
|
public static boolean downloadFile(String path, Path outfile) {
|
|
try {
|
|
URL url = new URL(path);
|
|
InputStream in = url.openStream();
|
|
Files.copy(in, outfile, StandardCopyOption.REPLACE_EXISTING);
|
|
return true;
|
|
} catch (IOException e) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|