2015-09-02 13:06:48 +02:00
|
|
|
package de.epiceric.shopchest.utils;
|
|
|
|
|
2016-05-28 15:47:57 +02:00
|
|
|
import de.epiceric.shopchest.ShopChest;
|
2016-06-22 20:51:19 +02:00
|
|
|
|
|
|
|
import java.io.BufferedReader;
|
2016-11-18 21:14:01 +01:00
|
|
|
import java.io.IOException;
|
2016-06-22 20:51:19 +02:00
|
|
|
import java.io.InputStreamReader;
|
|
|
|
import java.net.URL;
|
|
|
|
import java.net.URLConnection;
|
2015-09-02 13:06:48 +02:00
|
|
|
|
|
|
|
public class UpdateChecker {
|
|
|
|
|
2016-05-28 15:47:57 +02:00
|
|
|
private ShopChest plugin;
|
|
|
|
private String version;
|
|
|
|
private String link;
|
2016-05-29 15:32:54 +02:00
|
|
|
|
2016-06-30 21:59:06 +02:00
|
|
|
public UpdateChecker(ShopChest plugin) {
|
2016-05-28 15:47:57 +02:00
|
|
|
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
|
|
|
*/
|
2016-07-06 17:05:30 +02:00
|
|
|
public UpdateCheckerResult check() {
|
2016-05-28 15:47:57 +02:00
|
|
|
try {
|
2016-08-03 13:49:31 +02:00
|
|
|
plugin.debug("Checking for updates...");
|
|
|
|
|
2016-06-22 20:51:19 +02:00
|
|
|
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();
|
2016-05-28 15:47:57 +02:00
|
|
|
|
2016-06-22 20:51:19 +02:00
|
|
|
isr.close();
|
|
|
|
br.close();
|
2016-05-28 15:47:57 +02:00
|
|
|
|
2016-06-22 20:51:19 +02:00
|
|
|
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];
|
2016-05-28 15:47:57 +02:00
|
|
|
|
2016-08-03 13:49:31 +02:00
|
|
|
if (plugin.getDescription().getVersion().equals(version)) {
|
|
|
|
plugin.debug("No update found");
|
2016-05-28 15:47:57 +02:00
|
|
|
return UpdateCheckerResult.FALSE;
|
2016-08-03 13:49:31 +02:00
|
|
|
} else {
|
|
|
|
plugin.debug("Update found: " + version);
|
2016-05-28 15:47:57 +02:00
|
|
|
return UpdateCheckerResult.TRUE;
|
2016-08-03 13:49:31 +02:00
|
|
|
}
|
2016-05-28 15:47:57 +02:00
|
|
|
|
2016-11-18 21:14:01 +01:00
|
|
|
} catch (IOException e) {
|
2016-08-03 13:49:31 +02:00
|
|
|
plugin.debug("Failed to check for updates");
|
|
|
|
plugin.debug(e);
|
2016-05-28 15:47:57 +02:00
|
|
|
return UpdateCheckerResult.ERROR;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2016-06-30 21:59:06 +02:00
|
|
|
/**
|
|
|
|
* @return Latest Version or <b>null</b> if no update is available
|
|
|
|
*/
|
2016-05-28 15:47:57 +02:00
|
|
|
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
|
|
|
|
*/
|
2016-05-28 15:47:57 +02:00
|
|
|
public String getLink() {
|
|
|
|
return link;
|
|
|
|
}
|
|
|
|
|
|
|
|
public enum UpdateCheckerResult {
|
|
|
|
TRUE,
|
|
|
|
FALSE,
|
2016-06-30 21:59:06 +02:00
|
|
|
ERROR
|
2016-05-28 15:47:57 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2015-09-02 13:06:48 +02:00
|
|
|
}
|