From 7a22f119236ce6c76ff008918b131cc1a137b940 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Sun, 5 Jun 2016 00:58:20 +0200 Subject: [PATCH 1/9] [FEATURE] Added ability to append query to URI --- .../environment/api/utils/WebUtil.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/parabot/environment/api/utils/WebUtil.java b/src/main/java/org/parabot/environment/api/utils/WebUtil.java index 249bfe7..731e7de 100644 --- a/src/main/java/org/parabot/environment/api/utils/WebUtil.java +++ b/src/main/java/org/parabot/environment/api/utils/WebUtil.java @@ -5,10 +5,7 @@ import org.parabot.core.io.ProgressListener; import org.parabot.core.io.SizeInputStream; import java.io.*; -import java.net.MalformedURLException; -import java.net.URL; -import java.net.URLConnection; -import java.net.URLEncoder; +import java.net.*; /** * @@ -308,4 +305,18 @@ public class WebUtil { } return jsonParser; } + + public static URI appendUri(String uri, String appendQuery) throws URISyntaxException { + URI oldUri = new URI(uri); + + String newQuery = oldUri.getQuery(); + if (newQuery == null) { + newQuery = appendQuery; + } else { + newQuery += "&" + appendQuery; + } + + return new URI(oldUri.getScheme(), oldUri.getAuthority(), + oldUri.getPath(), newQuery, oldUri.getFragment()); + } } From 2076802fa2a0488a89503e9def38f5a91c063412 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Sun, 5 Jun 2016 01:44:34 +0200 Subject: [PATCH 2/9] [FEATURE] Added nightly build support --- .../java/org/parabot/core/Configuration.java | 5 +- src/main/java/org/parabot/core/Core.java | 81 ++- .../environment/api/utils/Version.java | 4 + .../environment/api/utils/WebUtil.java | 551 +++++++++--------- 4 files changed, 323 insertions(+), 318 deletions(-) diff --git a/src/main/java/org/parabot/core/Configuration.java b/src/main/java/org/parabot/core/Configuration.java index 249efb1..b9c9871 100644 --- a/src/main/java/org/parabot/core/Configuration.java +++ b/src/main/java/org/parabot/core/Configuration.java @@ -15,16 +15,19 @@ public class Configuration { public static final String GET_SERVER_PROVIDER = "http://bdn.parabot.org/api/get.php?action=server_provider&name="; public static final String GET_SERVER_PROVIDER_INFO = "http://bdn.parabot.org/api/get.php?action=server_information&name="; public static final String GET_SERVER_SETTINGS = "http://bdn.parabot.org/api/get.php?action=get_settings"; - public static final String GET_BOT_VERSION = "http://v3.bdn.parabot.org/api/bot/list/client?latest=true"; + public static final String GET_BOT_VERSION = "http://bdn.parabot.org/api/v2/bot/version"; public static final String API_DOWNLOAD_BOT = "http://bdn.parabot.org/api/v2/bot/download/client/"; public static final String DOWNLOAD_BOT = "http://bdn.parabot.org/versions/"; public static final String REGISTRATION_PAGE = "https://www.parabot.org/community/register/"; public static final String GET_RANDOMS = "http://v3.bdn.parabot.org/api/bot/download/randoms"; public static final String DATA_API = "http://bdn.parabot.org/api/v2/data/"; public static final String ITEM_API = DATA_API + "items/"; + public static final String COMPARE_VERSION_URL = "http://v3.bdn.parabot.org/api/bot/compare/%s/%s"; public static final Version BOT_VERSION = ProjectProperties.getProjectVersion(); public static final String BOT_TITLE = "Parabot"; public static final String BOT_SLOGAN = "The best RuneScape private server bot"; + + public static final String NIGHTLY_APPEND = "nightly=true"; } diff --git a/src/main/java/org/parabot/core/Core.java b/src/main/java/org/parabot/core/Core.java index ef565cb..c391960 100644 --- a/src/main/java/org/parabot/core/Core.java +++ b/src/main/java/org/parabot/core/Core.java @@ -24,7 +24,7 @@ import java.security.NoSuchAlgorithmException; */ @SuppressWarnings("Duplicates") public class Core { - public static boolean mDebug; + private static boolean debug; private static boolean verbose; private static boolean dump; @@ -75,21 +75,21 @@ public class Core { * @param dump */ public static void setDump(final boolean dump) { - Core.dump = dump; + Core.dump = dump; } - - public static void disableSec(){ - UILog.log( - "Security Warning", - "Disabling the securty manager is ill advised.\n" - + " Only do so if the client fails to load, or functions incorrectly (freezes,crashes, etc.)\n" - + "The security manager protects you from malicous code within the client, without it you are exposed!\n" - + "\nPlease contact Parabot staff to resolve whatever problem you are having!"); - Core.secure = false; + + public static void disableSec() { + UILog.log( + "Security Warning", + "Disabling the securty manager is ill advised.\n" + + " Only do so if the client fails to load, or functions incorrectly (freezes,crashes, etc.)\n" + + "The security manager protects you from malicous code within the client, without it you are exposed!\n" + + "\nPlease contact Parabot staff to resolve whatever problem you are having!"); + Core.secure = false; } - - public static boolean isSecure(){ - return secure; + + public static boolean isSecure() { + return secure; } /** @@ -110,7 +110,7 @@ public class Core { * @return if parabot should dump injected jar */ public static boolean shouldDump() { - return dump; + return dump; } /** @@ -130,9 +130,10 @@ public class Core { /** * Checks the version of the bot using a checksum of the jar comparison against checksum given by the website + * * @return true if no new version is found, otherwise false. */ - private static boolean checksumValid(){ + private static boolean checksumValid() { File f = new File(Landing.class.getProtectionDomain().getCodeSource().getLocation().getFile()); if (f.isFile()) { try { @@ -158,7 +159,7 @@ public class Core { String result; if ((result = WebUtil.getContents("http://bdn.parabot.org/api/v2/bot/checksum", "checksum=" + URLEncoder.encode(sb.toString(), "UTF-8"))) != null) { JSONObject object = (JSONObject) WebUtil.getJsonParser().parse(result); - if (!(boolean) object.get("result")){ + if (!(boolean) object.get("result")) { Core.verbose("Latest checksum: " + sb.toString()); Core.verbose("Latest checksum: " + object.get("current")); return false; @@ -173,13 +174,12 @@ public class Core { } /** - * @Deprecated use #validVersion instead - * - * Checks the version of the bot using a variable comparison from the bot code and the Parabot website - * * @return true if no new version is found, otherwise false. + * @Deprecated use #validVersion instead + *

+ * Checks the version of the bot using a variable comparison from the bot code and the Parabot website */ - private static boolean versionValid(){ + private static boolean versionValid() { BufferedReader br = WebUtil.getReader(Configuration.GET_BOT_VERSION); try { String version = null; @@ -215,21 +215,20 @@ public class Core { * @return True if the current version is equal or higher than the latest version, false if lower than the latest version */ public static boolean validVersion() { - BufferedReader br = WebUtil.getReader(Configuration.GET_BOT_VERSION); + String url = String.format(Configuration.COMPARE_VERSION_URL, "client", currentVersion.get()); + + BufferedReader br = WebUtil.getReader(url); try { latestVersion = null; if (br != null) { JSONObject object = (JSONObject) WebUtil.getJsonParser().parse(br); - latestVersion = new Version((String) object.get("version")); - } - if (latestVersion != null) { - if (Configuration.BOT_VERSION.compareTo(latestVersion) < 0) { - Core.verbose("Our version: " + Configuration.BOT_VERSION.get()); - Core.verbose("Latest version: " + latestVersion.get()); - return false; + boolean latest = Boolean.parseBoolean((String) object.get("result")); + if (!latest){ + Directories.clearCache(); } + return latest; } - } catch (NumberFormatException | IOException | ParseException e) { + } catch (IOException | ParseException e) { e.printStackTrace(); } finally { try { @@ -247,13 +246,13 @@ public class Core { /** * Validates the cache and removes the cache contents if required */ - private static void validateCache(){ + private static void validateCache() { File[] cache = Directories.getCachePath().listFiles(); Integer lowest = null; if (cache != null) { for (File f : cache) { - int date = (int) (f.lastModified()/ 1000); - if (lowest == null || date < lowest){ + int date = (int) (f.lastModified() / 1000); + if (lowest == null || date < lowest) { lowest = date; } } @@ -261,10 +260,10 @@ public class Core { try { JSONObject object = (JSONObject) WebUtil.getJsonParser().parse(WebUtil.getContents("http://bdn.parabot.org/api/v2/bot/cache", "date=" + lowest)); - if ((boolean) object.get("result")){ + if ((boolean) object.get("result")) { Core.verbose("Making space for the latest cache files"); Directories.clearCache(); - }else{ + } else { Core.verbose("Cache is up to date"); } } catch (MalformedURLException | ParseException e) { @@ -281,18 +280,12 @@ public class Core { Core.verbose("Checking for updates..."); validateCache(); - if ((validVersion() && checksumValid()) || (!checksumValid() && currentVersion.compareTo(latestVersion) >= 0)){ + if (validVersion() && checksumValid()) { Core.verbose("No updates available."); return true; - }else{ + } else { Core.verbose("Updates available..."); return false; } } - - public static void debug(int i) { - if(mDebug) { - System.out.println("DEBUG: " + i); - } - } } \ No newline at end of file diff --git a/src/main/java/org/parabot/environment/api/utils/Version.java b/src/main/java/org/parabot/environment/api/utils/Version.java index 172e182..d585171 100644 --- a/src/main/java/org/parabot/environment/api/utils/Version.java +++ b/src/main/java/org/parabot/environment/api/utils/Version.java @@ -22,6 +22,10 @@ public class Version implements Comparable { return this.version; } + public boolean isNightly(){ + return this.version.contains("RC"); + } + @Override public int compareTo(Version that) { if (that == null) { diff --git a/src/main/java/org/parabot/environment/api/utils/WebUtil.java b/src/main/java/org/parabot/environment/api/utils/WebUtil.java index 731e7de..3164679 100644 --- a/src/main/java/org/parabot/environment/api/utils/WebUtil.java +++ b/src/main/java/org/parabot/environment/api/utils/WebUtil.java @@ -8,315 +8,320 @@ import java.io.*; import java.net.*; /** - * * A WebUtil class fetches data from an URL - * + * * @author Everel - * */ public class WebUtil { - private static JSONParser jsonParser; + private static JSONParser jsonParser; - private static String agent = "Mozilla/5.0 (Wind0ws NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1"; + private static String agent = "Mozilla/5.0 (Wind0ws NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.112 Safari/535.1"; - /** - * Agent to set at a URL connection - * - * @param userAgent - */ - public static void setUserAgent(final String userAgent) { - agent = userAgent; - } + /** + * Agent to set at a URL connection + * + * @param userAgent + */ + public static void setUserAgent(final String userAgent) { + agent = userAgent; + } - /** - * Gets useragent - * - * @return useragent - */ - public static String getUserAgent() { - return agent; - } + /** + * Gets useragent + * + * @return useragent + */ + public static String getUserAgent() { + return agent; + } - /** - * Fetches content of a page - * - * @param location - * @return contents of page - * @throws MalformedURLException - */ - public static String getContents(final String location) - throws MalformedURLException { - return getContents(new URL(location)); - } + /** + * Fetches content of a page + * + * @param location + * @return contents of page + * @throws MalformedURLException + */ + public static String getContents(final String location) + throws MalformedURLException { + return getContents(new URL(location)); + } - public static String getContents(final String location, String parameters) throws MalformedURLException { - return getContents(new URL(location), parameters); - } + public static String getContents(final String location, String parameters) throws MalformedURLException { + return getContents(new URL(location), parameters); + } - /** - * Get contents from URL - * - * @param url - * @return page contents - */ - public static String getContents(final URL url) { - return getContents(getConnection(url)); - } + /** + * Get contents from URL + * + * @param url + * @return page contents + */ + public static String getContents(final URL url) { + return getContents(getConnection(url)); + } - public static String getContents(final URL url, final String parameters) { - return getContents(getConnection(url), parameters); - } + public static String getContents(final URL url, final String parameters) { + return getContents(getConnection(url), parameters); + } - /** - * Gets contents from URLConnection - * - * @param urlConnection - * @return page contents - */ - public static String getContents(URLConnection urlConnection) { - try { - final BufferedReader in = getReader(urlConnection); - final StringBuilder builder = new StringBuilder(); - String line; - if (in != null) { - while ((line = in.readLine()) != null) { + /** + * Gets contents from URLConnection + * + * @param urlConnection + * @return page contents + */ + public static String getContents(URLConnection urlConnection) { + try { + final BufferedReader in = getReader(urlConnection); + final StringBuilder builder = new StringBuilder(); + String line; + if (in != null) { + while ((line = in.readLine()) != null) { builder.append(line); } - in.close(); - } - return builder.toString(); - } catch (Throwable t) { - t.printStackTrace(); - } - return null; - } + in.close(); + } + return builder.toString(); + } catch (Throwable t) { + t.printStackTrace(); + } + return null; + } - public static String getContents(URLConnection urlConnection, String parameters) { - try { - urlConnection.setDoOutput(true); - OutputStreamWriter wr = new OutputStreamWriter(urlConnection.getOutputStream()); - wr.write(parameters); - wr.flush(); - wr.close(); + public static String getContents(URLConnection urlConnection, String parameters) { + try { + urlConnection.setDoOutput(true); + OutputStreamWriter wr = new OutputStreamWriter(urlConnection.getOutputStream()); + wr.write(parameters); + wr.flush(); + wr.close(); - final BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); - final StringBuilder builder = new StringBuilder(); - String line; - while ((line = in.readLine()) != null) { - builder.append(line); - } - return builder.toString(); - } catch (Throwable t) { - t.printStackTrace(); - } - return null; - } + final BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream())); + final StringBuilder builder = new StringBuilder(); + String line; + while ((line = in.readLine()) != null) { + builder.append(line); + } + return builder.toString(); + } catch (Throwable t) { + t.printStackTrace(); + } + return null; + } - /** - * Gets buffered reader from string url - * - * @param url - * @return bufferedreader - */ - public static BufferedReader getReader(final String url) { - try { - return getReader(new URL(url)); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - return null; - } + /** + * Gets buffered reader from string url + * + * @param url + * @return bufferedreader + */ + public static BufferedReader getReader(final String url) { + try { + return getReader(new URL(url)); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + return null; + } - /** - * Gets BufferedReader from URL - * - * @param url - * @return BufferedReader from URL - */ - public static BufferedReader getReader(final URL url) { - return getReader(getConnection(url)); - } + /** + * Gets BufferedReader from URL + * + * @param url + * @return BufferedReader from URL + */ + public static BufferedReader getReader(final URL url) { + return getReader(getConnection(url)); + } - public static BufferedReader getReader(final URLConnection urlConnection) { - try { - return new BufferedReader(new InputStreamReader( - urlConnection.getInputStream())); - } catch (Throwable t) { - t.printStackTrace(); - } - return null; - } + public static BufferedReader getReader(final URLConnection urlConnection) { + try { + return new BufferedReader(new InputStreamReader( + urlConnection.getInputStream())); + } catch (Throwable t) { + t.printStackTrace(); + } + return null; + } - /** - * Gets inputstream from url - * - * @param url - * @return inputstream from url - */ - public static InputStream getInputStream(final URL url) { - final URLConnection con = getConnection(url); - try { - return con.getInputStream(); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } + /** + * Gets inputstream from url + * + * @param url + * @return inputstream from url + */ + public static InputStream getInputStream(final URL url) { + final URLConnection con = getConnection(url); + try { + return con.getInputStream(); + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } - /** - * Opens a connection - * - * @param url - * @return URLConnection to URL - */ - public static URLConnection getConnection(final URL url) { - try { - final URLConnection con = url.openConnection(); - con.setRequestProperty("User-Agent", agent); - return con; - } catch (Throwable t) { - t.printStackTrace(); - } - return null; - } + /** + * Opens a connection + * + * @param url + * @return URLConnection to URL + */ + public static URLConnection getConnection(final URL url) { + try { + final URLConnection con = url.openConnection(); + con.setRequestProperty("User-Agent", agent); + return con; + } catch (Throwable t) { + t.printStackTrace(); + } + return null; + } - public static BufferedReader getReader(final URL url, String username, String password) { - try { - String data = URLEncoder.encode("username", "UTF-8") + "=" + username; - data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + password; - - URLConnection connection = url.openConnection(); - - connection.setDoOutput(true); + public static BufferedReader getReader(final URL url, String username, String password) { + try { + String data = URLEncoder.encode("username", "UTF-8") + "=" + username; + data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + password; + + URLConnection connection = url.openConnection(); + + connection.setDoOutput(true); OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream()); wr.write(data); wr.flush(); wr.close(); - + return new BufferedReader(new InputStreamReader(connection.getInputStream())); - } catch (Throwable t) { - t.printStackTrace(); - } - return null; - } - - public static URLConnection getConnection(final URL url, String username, String password) { - try { - String data = URLEncoder.encode("username", "UTF-8") + "=" + username; - data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + password; - - URLConnection connection = url.openConnection(); - - connection.setDoOutput(true); + } catch (Throwable t) { + t.printStackTrace(); + } + return null; + } + + public static URLConnection getConnection(final URL url, String username, String password) { + try { + String data = URLEncoder.encode("username", "UTF-8") + "=" + username; + data += "&" + URLEncoder.encode("password", "UTF-8") + "=" + password; + + URLConnection connection = url.openConnection(); + + connection.setDoOutput(true); OutputStreamWriter wr = new OutputStreamWriter(connection.getOutputStream()); wr.write(data); wr.flush(); wr.close(); - + return connection; - } catch (Throwable t) { - t.printStackTrace(); - } - return null; - } + } catch (Throwable t) { + t.printStackTrace(); + } + return null; + } - /** - * Downloads a file on the internet - * @param url - * @param destination - * @param listener - */ - public static void downloadFile(final URL url, final File destination, - final ProgressListener listener) { - try { - final URLConnection connection = getConnection(url); - int size = connection.getContentLength(); - SizeInputStream sizeInputStream = new SizeInputStream( - connection.getInputStream(), size, listener); - BufferedInputStream in = new BufferedInputStream(sizeInputStream); - FileOutputStream fileOut = new FileOutputStream(destination); - try { - byte data[] = new byte[1024]; - int count; - while ((count = in.read(data, 0, 1024)) != -1) { - fileOut.write(data, 0, count); - } - } finally { - if (in != null) - in.close(); - if (fileOut != null) - fileOut.close(); - } - } catch (Throwable t) { - t.printStackTrace(); - } - } - - /** - * Downloads a file on the internet - * @param url - * @param destination - * @param listener - */ - public static void downloadFile(final URL url, final File destination, - final ProgressListener listener, String username, String password) { - try { - final URLConnection connection = getConnection(url, username, password); - int size = connection.getContentLength(); - SizeInputStream sizeInputStream = new SizeInputStream( - connection.getInputStream(), size, listener); - BufferedInputStream in = new BufferedInputStream(sizeInputStream); - FileOutputStream fileOut = new FileOutputStream(destination); - try { - byte data[] = new byte[1024]; - int count; - while ((count = in.read(data, 0, 1024)) != -1) { - fileOut.write(data, 0, count); - } - } finally { - if (in != null) - in.close(); - if (fileOut != null) - fileOut.close(); - } - } catch (Throwable t) { - t.printStackTrace(); - } - } - - /** - * Converts file format to url format - * @param file - * @return url to file - */ - public static URL toURL(File file) { - try { - return file.toURI().toURL(); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - return null; - } + /** + * Downloads a file on the internet + * + * @param url + * @param destination + * @param listener + */ + public static void downloadFile(final URL url, final File destination, + final ProgressListener listener) { + try { + final URLConnection connection = getConnection(url); + int size = connection.getContentLength(); + SizeInputStream sizeInputStream = new SizeInputStream( + connection.getInputStream(), size, listener); + BufferedInputStream in = new BufferedInputStream(sizeInputStream); + FileOutputStream fileOut = new FileOutputStream(destination); + try { + byte data[] = new byte[1024]; + int count; + while ((count = in.read(data, 0, 1024)) != -1) { + fileOut.write(data, 0, count); + } + } finally { + if (in != null) + in.close(); + if (fileOut != null) + fileOut.close(); + } + } catch (Throwable t) { + t.printStackTrace(); + } + } - public static JSONParser getJsonParser() { - if (jsonParser == null){ - jsonParser = new JSONParser(); - } - return jsonParser; - } + /** + * Downloads a file on the internet + * + * @param url + * @param destination + * @param listener + */ + public static void downloadFile(final URL url, final File destination, + final ProgressListener listener, String username, String password) { + try { + final URLConnection connection = getConnection(url, username, password); + int size = connection.getContentLength(); + SizeInputStream sizeInputStream = new SizeInputStream( + connection.getInputStream(), size, listener); + BufferedInputStream in = new BufferedInputStream(sizeInputStream); + FileOutputStream fileOut = new FileOutputStream(destination); + try { + byte data[] = new byte[1024]; + int count; + while ((count = in.read(data, 0, 1024)) != -1) { + fileOut.write(data, 0, count); + } + } finally { + if (in != null) + in.close(); + if (fileOut != null) + fileOut.close(); + } + } catch (Throwable t) { + t.printStackTrace(); + } + } - public static URI appendUri(String uri, String appendQuery) throws URISyntaxException { - URI oldUri = new URI(uri); + /** + * Converts file format to url format + * + * @param file + * @return url to file + */ + public static URL toURL(File file) { + try { + return file.toURI().toURL(); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + return null; + } - String newQuery = oldUri.getQuery(); - if (newQuery == null) { - newQuery = appendQuery; - } else { - newQuery += "&" + appendQuery; - } + public static JSONParser getJsonParser() { + if (jsonParser == null) { + jsonParser = new JSONParser(); + } + return jsonParser; + } - return new URI(oldUri.getScheme(), oldUri.getAuthority(), - oldUri.getPath(), newQuery, oldUri.getFragment()); - } + public static URI appendUri(String uri, String appendQuery) { + try { + URI oldUri = new URI(uri); + + String newQuery = oldUri.getQuery(); + if (newQuery == null) { + newQuery = appendQuery; + } else { + newQuery += "&" + appendQuery; + } + return new URI(oldUri.getScheme(), oldUri.getAuthority(), + oldUri.getPath(), newQuery, oldUri.getFragment()); + } catch (URISyntaxException e) { + e.printStackTrace(); + } + return null; + } } From 6829a0595e4b1887b6a57766ff40c251b0b6e3f5 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Sun, 5 Jun 2016 01:45:45 +0200 Subject: [PATCH 3/9] [CLEANUP] Removed deprecated Core#versionValid --- src/main/java/org/parabot/core/Core.java | 38 +----------------------- 1 file changed, 1 insertion(+), 37 deletions(-) diff --git a/src/main/java/org/parabot/core/Core.java b/src/main/java/org/parabot/core/Core.java index c391960..dad719e 100644 --- a/src/main/java/org/parabot/core/Core.java +++ b/src/main/java/org/parabot/core/Core.java @@ -24,7 +24,7 @@ import java.security.NoSuchAlgorithmException; */ @SuppressWarnings("Duplicates") public class Core { - + private static boolean debug; private static boolean verbose; private static boolean dump; @@ -173,42 +173,6 @@ public class Core { return true; } - /** - * @return true if no new version is found, otherwise false. - * @Deprecated use #validVersion instead - *

- * Checks the version of the bot using a variable comparison from the bot code and the Parabot website - */ - private static boolean versionValid() { - BufferedReader br = WebUtil.getReader(Configuration.GET_BOT_VERSION); - try { - String version = null; - if (br != null) { - JSONObject object = (JSONObject) WebUtil.getJsonParser().parse(br); - version = (String) object.get("result"); - } - if (version != null) { - if (!Configuration.BOT_VERSION.equals(version)) { - Core.verbose("Our version: " + Configuration.BOT_VERSION); - Core.verbose("Latest version: " + version); - return false; - } - } - } catch (NumberFormatException | IOException | ParseException e) { - e.printStackTrace(); - } finally { - try { - if (br != null) { - br.close(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - - return true; - } - /** * Compares the latest version from the BDN and the current version * From d8e0c93d3f6a67cf72e487dec59c84c598824d96 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Sun, 5 Jun 2016 02:07:30 +0200 Subject: [PATCH 4/9] [FEATURE] Comparing versions with the latest API --- src/main/java/org/parabot/core/Configuration.java | 2 ++ src/main/java/org/parabot/core/Core.java | 8 ++------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/parabot/core/Configuration.java b/src/main/java/org/parabot/core/Configuration.java index b9c9871..1b10eb4 100644 --- a/src/main/java/org/parabot/core/Configuration.java +++ b/src/main/java/org/parabot/core/Configuration.java @@ -22,7 +22,9 @@ public class Configuration { public static final String GET_RANDOMS = "http://v3.bdn.parabot.org/api/bot/download/randoms"; public static final String DATA_API = "http://bdn.parabot.org/api/v2/data/"; public static final String ITEM_API = DATA_API + "items/"; + public static final String COMPARE_VERSION_URL = "http://v3.bdn.parabot.org/api/bot/compare/%s/%s"; + public static final String COMPARE_CHECKSUM_URL = "http://v3.bdn.parabot.org/api/bot/checksum/%s/%s"; public static final Version BOT_VERSION = ProjectProperties.getProjectVersion(); diff --git a/src/main/java/org/parabot/core/Core.java b/src/main/java/org/parabot/core/Core.java index dad719e..34d7292 100644 --- a/src/main/java/org/parabot/core/Core.java +++ b/src/main/java/org/parabot/core/Core.java @@ -157,13 +157,9 @@ public class Core { } String result; - if ((result = WebUtil.getContents("http://bdn.parabot.org/api/v2/bot/checksum", "checksum=" + URLEncoder.encode(sb.toString(), "UTF-8"))) != null) { + if ((result = WebUtil.getContents(String.format(Configuration.COMPARE_CHECKSUM_URL, "client", currentVersion.get()), "checksum=" + URLEncoder.encode(sb.toString(), "UTF-8"))) != null) { JSONObject object = (JSONObject) WebUtil.getJsonParser().parse(result); - if (!(boolean) object.get("result")) { - Core.verbose("Latest checksum: " + sb.toString()); - Core.verbose("Latest checksum: " + object.get("current")); - return false; - } + return Boolean.parseBoolean((String) object.get("result")); } } } catch (NoSuchAlgorithmException | ParseException | IOException | URISyntaxException e) { From 64713f665eece83ca43f088b489d16a5f03c203c Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Sun, 5 Jun 2016 02:10:49 +0200 Subject: [PATCH 5/9] [CLEANUP] Reformated code --- src/main/java/org/parabot/core/Core.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/parabot/core/Core.java b/src/main/java/org/parabot/core/Core.java index 34d7292..a6a19cd 100644 --- a/src/main/java/org/parabot/core/Core.java +++ b/src/main/java/org/parabot/core/Core.java @@ -152,8 +152,8 @@ public class Core { byte[] mdbytes = md.digest(); StringBuilder sb = new StringBuilder(""); - for (int i = 0; i < mdbytes.length; i++) { - sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1)); + for (byte mdbyte : mdbytes) { + sb.append(Integer.toString((mdbyte & 0xff) + 0x100, 16).substring(1)); } String result; @@ -183,7 +183,7 @@ public class Core { if (br != null) { JSONObject object = (JSONObject) WebUtil.getJsonParser().parse(br); boolean latest = Boolean.parseBoolean((String) object.get("result")); - if (!latest){ + if (!latest) { Directories.clearCache(); } return latest; From 36410bf71c84d722a41ecd877a82508203c3cbab Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Mon, 6 Jun 2016 14:40:58 +0200 Subject: [PATCH 6/9] [FEATURE] Added NoProgresssListener --- .../org/parabot/core/io/NoProgressListener.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/main/java/org/parabot/core/io/NoProgressListener.java diff --git a/src/main/java/org/parabot/core/io/NoProgressListener.java b/src/main/java/org/parabot/core/io/NoProgressListener.java new file mode 100644 index 0000000..247bf39 --- /dev/null +++ b/src/main/java/org/parabot/core/io/NoProgressListener.java @@ -0,0 +1,16 @@ +package org.parabot.core.io; + +/** + * @author JKetelaar + */ +public class NoProgressListener implements ProgressListener { + @Override + public void onProgressUpdate(double value) { + + } + + @Override + public void updateDownloadSpeed(double mbPerSecond) { + + } +} From 0e59f63cf2e20c745cb2426b5a522c1988b0ab71 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Mon, 6 Jun 2016 14:41:10 +0200 Subject: [PATCH 7/9] [TASK] Implemented NoProgressListener --- .../parabot/core/parsers/randoms/PublicRandoms.java | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/parabot/core/parsers/randoms/PublicRandoms.java b/src/main/java/org/parabot/core/parsers/randoms/PublicRandoms.java index 2ddc409..9eb6315 100644 --- a/src/main/java/org/parabot/core/parsers/randoms/PublicRandoms.java +++ b/src/main/java/org/parabot/core/parsers/randoms/PublicRandoms.java @@ -4,6 +4,7 @@ import org.parabot.core.Configuration; import org.parabot.core.Context; import org.parabot.core.Core; import org.parabot.core.Directories; +import org.parabot.core.io.NoProgressListener; import org.parabot.core.io.ProgressListener; import org.parabot.environment.api.utils.WebUtil; @@ -51,17 +52,7 @@ public class PublicRandoms extends RandomParser { return; } String downloadLink = Configuration.GET_RANDOMS; - WebUtil.downloadFile(new URL(downloadLink), random, new ProgressListener() { - @Override - public void onProgressUpdate(double v) { - - } - - @Override - public void updateDownloadSpeed(double v) { - - } - }); + WebUtil.downloadFile(new URL(downloadLink), random, new NoProgressListener()); } catch (Exception e) { e.printStackTrace(); } From 456a7bc2541c8e4c35ba0b8b27af27789c003275 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Mon, 6 Jun 2016 14:48:27 +0200 Subject: [PATCH 8/9] [TASK] Implemented `-no_validation` --- src/main/java/org/parabot/core/Core.java | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/parabot/core/Core.java b/src/main/java/org/parabot/core/Core.java index a6a19cd..bf3903b 100644 --- a/src/main/java/org/parabot/core/Core.java +++ b/src/main/java/org/parabot/core/Core.java @@ -35,7 +35,7 @@ public class Core { private static Version currentVersion = Configuration.BOT_VERSION; private static Version latestVersion; - + public static void disableValidation() { Core.validate = false; } @@ -159,6 +159,7 @@ public class Core { String result; if ((result = WebUtil.getContents(String.format(Configuration.COMPARE_CHECKSUM_URL, "client", currentVersion.get()), "checksum=" + URLEncoder.encode(sb.toString(), "UTF-8"))) != null) { JSONObject object = (JSONObject) WebUtil.getJsonParser().parse(result); + System.out.println(object.get("result")); return Boolean.parseBoolean((String) object.get("result")); } } @@ -179,7 +180,6 @@ public class Core { BufferedReader br = WebUtil.getReader(url); try { - latestVersion = null; if (br != null) { JSONObject object = (JSONObject) WebUtil.getJsonParser().parse(br); boolean latest = Boolean.parseBoolean((String) object.get("result")); @@ -240,12 +240,17 @@ public class Core { Core.verbose("Checking for updates..."); validateCache(); - if (validVersion() && checksumValid()) { - Core.verbose("No updates available."); + if (validate) { + if (validVersion() && checksumValid()) { + Core.verbose("No updates available."); + return true; + } else { + Core.verbose("Updates available..."); + return false; + } + }else{ + Core.verbose("Validation disabled"); return true; - } else { - Core.verbose("Updates available..."); - return false; } } } \ No newline at end of file From 84541917ab6466b9d1e9f91fa6b147a9f667fd21 Mon Sep 17 00:00:00 2001 From: JKetelaar Date: Mon, 6 Jun 2016 14:48:35 +0200 Subject: [PATCH 9/9] [CLEANUP] Removed whiteline --- src/main/java/org/parabot/core/Core.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/parabot/core/Core.java b/src/main/java/org/parabot/core/Core.java index bf3903b..23e79a8 100644 --- a/src/main/java/org/parabot/core/Core.java +++ b/src/main/java/org/parabot/core/Core.java @@ -35,7 +35,7 @@ public class Core { private static Version currentVersion = Configuration.BOT_VERSION; private static Version latestVersion; - + public static void disableValidation() { Core.validate = false; }