ShopChest/src/main/java/de/epiceric/shopchest/utils/UpdateChecker.java

83 lines
2.3 KiB
Java
Raw Normal View History

2015-09-02 13:06:48 +02:00
package de.epiceric.shopchest.utils;
import de.epiceric.shopchest.ShopChest;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
2015-09-02 13:06:48 +02:00
public class UpdateChecker {
private ShopChest plugin;
private String version;
private String link;
2016-06-30 21:59:06 +02:00
public UpdateChecker(ShopChest plugin) {
this.plugin = plugin;
}
2016-06-30 21:59:06 +02:00
/**
* Check if an update is needed
*
2016-07-01 13:50:40 +02:00
* @return {@link UpdateCheckerResult#TRUE} if an update is available, {@link UpdateCheckerResult#FALSE} if no update is needed or {@link UpdateCheckerResult#ERROR} if an error occurred
2016-06-30 21:59:06 +02:00
*/
public UpdateCheckerResult check() {
try {
plugin.debug("Checking for updates...");
URL url = new URL("http://textuploader.com/all1l/raw");
URLConnection conn = url.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0");
conn.connect();
InputStreamReader isr = new InputStreamReader(conn.getInputStream());
BufferedReader br = new BufferedReader(isr);
String line = br.readLine();
isr.close();
br.close();
version = line.split("\\|")[0];
2016-08-03 16:13:15 +02:00
link = "https://www.spigotmc.org/resources/shopchest.11431/download?version=" + line.split("\\|")[1];
if (plugin.getDescription().getVersion().equals(version)) {
plugin.debug("No update found");
return UpdateCheckerResult.FALSE;
} else {
plugin.debug("Update found: " + version);
return UpdateCheckerResult.TRUE;
}
} catch (IOException e) {
plugin.debug("Failed to check for updates");
plugin.debug(e);
return UpdateCheckerResult.ERROR;
}
}
2016-06-30 21:59:06 +02:00
/**
* @return Latest Version or <b>null</b> if no update is available
*/
public String getVersion() {
return version;
}
2016-06-30 21:59:06 +02:00
/**
* @return Download Link of the latest version of <b>null</b> if no update is available
*/
public String getLink() {
return link;
}
public enum UpdateCheckerResult {
TRUE,
FALSE,
2016-06-30 21:59:06 +02:00
ERROR
}
2015-09-02 13:06:48 +02:00
}