Created the VersionInstaller.java
This commit is contained in:
parent
6e99e06f0c
commit
7c80d11f38
@ -0,0 +1,57 @@
|
||||
package de.gnmyt.mcdash.api.installer;
|
||||
|
||||
import de.gnmyt.mcdash.api.Logger;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
public interface VersionInstaller {
|
||||
|
||||
Logger LOG = new Logger(VersionInstaller.class);
|
||||
OkHttpClient client = new OkHttpClient();
|
||||
|
||||
/**
|
||||
* Installs a specific version of the minecraft server software
|
||||
*
|
||||
* @param software the software
|
||||
* @param version the version
|
||||
* @return <code>true</code> if the installation was successful
|
||||
*/
|
||||
boolean installVersion(String software, String version);
|
||||
|
||||
/**
|
||||
* Downloads a file from a specific url and saves it to a specific file
|
||||
*
|
||||
* @param url the url of the file
|
||||
* @param file the file where the file should be saved
|
||||
* @return <code>true</code> if the download was successful
|
||||
*/
|
||||
default boolean downloadFile(String url, File file) {
|
||||
try {
|
||||
Request request = new Request.Builder().url(url).build();
|
||||
Response response = client.newCall(request).execute();
|
||||
|
||||
if (response.code() == 200) {
|
||||
FileUtils.copyToFile(response.body().byteStream(), file);
|
||||
|
||||
if (file.length() < 2000000) {
|
||||
LOG.error("The file " + file.getName() + " is too small. It may be corrupted.");
|
||||
file.delete();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
response.close();
|
||||
} catch (Exception e) {
|
||||
LOG.error("An error occurred while downloading the file", e);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user