diff --git a/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/SaneEconomy.java b/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/SaneEconomy.java index f36ff89..64ff207 100644 --- a/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/SaneEconomy.java +++ b/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/SaneEconomy.java @@ -13,6 +13,7 @@ import org.appledash.sanelib.command.SaneCommand; import java.io.File; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import java.util.Optional; import java.util.logging.Logger; @@ -49,6 +50,10 @@ public class SaneEconomy extends SanePlugin implements ISaneEconomy { return; } + if (this.getConfig().getBoolean("locale-override", false)) { + Locale.setDefault(Locale.ENGLISH); + } + loadCommands(); loadListeners(); diff --git a/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/updates/GithubVersionChecker.java b/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/updates/GithubVersionChecker.java index 19de1af..82e4545 100644 --- a/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/updates/GithubVersionChecker.java +++ b/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/updates/GithubVersionChecker.java @@ -13,9 +13,10 @@ import org.appledash.saneeconomy.utils.WebUtils; public class GithubVersionChecker { public static final String DOWNLOAD_URL = "https://github.com/AppleDash/SaneEconomy/releases"; private static final String RELEASES_URL = "https://api.github.com/repos/AppleDash/SaneEconomy/releases"; + private static String newestFound; + private boolean updateChecked; private boolean updateAvailable; - private static String newestVersion; private final String pluginName; private final String currentVersion; @@ -29,9 +30,8 @@ public class GithubVersionChecker { JsonArray array = (JsonArray)new JsonParser().parse(jsonContent); - int currentVersion = releaseToInt(this.currentVersion); - int newestVersion = -1; - // JsonObject newestObj = null; + String currentVersion = this.currentVersion; + String newestFound = null; for (JsonElement elem : array) { if (elem instanceof JsonObject) { @@ -49,22 +49,16 @@ public class GithubVersionChecker { } String versionStr = releaseObj.get("tag_name").getAsString(); - int version = releaseToInt(versionStr); - if (version > newestVersion) { - newestVersion = version; - GithubVersionChecker.newestVersion = versionStr; - // newestObj = releaseObj; + if (VersionComparer.isSemVerGreaterThan(newestFound, versionStr)) { + newestFound = versionStr; + GithubVersionChecker.newestFound = versionStr; } } } updateChecked = true; - updateAvailable = newestVersion > currentVersion; - } - - private int releaseToInt(String release) { - return Integer.valueOf(release.trim().replace(".", "")); + updateAvailable = VersionComparer.isSemVerGreaterThan(currentVersion, newestFound); } public boolean isUpdateAvailable() { @@ -72,6 +66,6 @@ public class GithubVersionChecker { } public String getNewestVersion() { - return newestVersion; + return newestFound; } } diff --git a/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/updates/VersionComparer.java b/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/updates/VersionComparer.java new file mode 100644 index 0000000..35791b2 --- /dev/null +++ b/SaneEconomyCore/src/main/java/org/appledash/saneeconomy/updates/VersionComparer.java @@ -0,0 +1,36 @@ +package org.appledash.saneeconomy.updates; + +/** + * Created by appledash on 7/15/17. + * Blackjack is best pony. + */ +public class VersionComparer { + public static boolean isSemVerGreaterThan(String first, String second) { + if (first == null) { + return true; + } + + if (second == null) { + return false; + } + + int[] firstParts = intifyParts(first); + int[] secondParts = intifyParts(second); + + if (secondParts[0] > firstParts[0]) { + return true; + } + + if (secondParts[1] > firstParts[1]) { + return true; + } + + return secondParts[2] > firstParts[2]; + } + + private static int[] intifyParts(String version) { + String[] firstParts = version.split("\\."); + + return new int[] { Integer.valueOf(firstParts[0]), Integer.valueOf(firstParts[1]), Integer.valueOf(firstParts[2]) }; + } +} diff --git a/SaneEconomyCore/src/main/resources/config.yml b/SaneEconomyCore/src/main/resources/config.yml index d0cf37c..d48a882 100644 --- a/SaneEconomyCore/src/main/resources/config.yml +++ b/SaneEconomyCore/src/main/resources/config.yml @@ -18,4 +18,5 @@ economy: notify-start-balance: true server-account: '$SERVER$' +locale-override: false debug: false diff --git a/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/VersionComparerTest.java b/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/VersionComparerTest.java new file mode 100644 index 0000000..fa83dd8 --- /dev/null +++ b/SaneEconomyCore/src/test/java/org/appledash/saneeconomy/test/VersionComparerTest.java @@ -0,0 +1,19 @@ +package org.appledash.saneeconomy.test; + +import org.appledash.saneeconomy.updates.VersionComparer; +import org.junit.Assert; +import org.junit.Test; + +/** + * Created by appledash on 7/15/17. + * Blackjack is best pony. + */ +public class VersionComparerTest { + @Test + public void testVersionComparer() { + Assert.assertTrue(VersionComparer.isSemVerGreaterThan("0.12.6", "1.0.0")); + Assert.assertFalse(VersionComparer.isSemVerGreaterThan("2.0.0", "1.0.0")); + Assert.assertTrue(VersionComparer.isSemVerGreaterThan("0.1.0", "0.2.0")); + Assert.assertTrue(VersionComparer.isSemVerGreaterThan("1.0.0", "2.0.0")); + } +}