diff --git a/src/main/java/com/Acrobot/ChestShop/ChestShop.java b/src/main/java/com/Acrobot/ChestShop/ChestShop.java index 5e237a2..f598435 100644 --- a/src/main/java/com/Acrobot/ChestShop/ChestShop.java +++ b/src/main/java/com/Acrobot/ChestShop/ChestShop.java @@ -500,6 +500,9 @@ public class ChestShop extends JavaPlugin { bStats.addCustomChart(new SimplePie("allow-partial-transactions", () -> Properties.ALLOW_PARTIAL_TRANSACTIONS ? "enabled" : "disabled")); bStats.addCustomChart(new SimplePie("log-to-console", () -> Properties.LOG_TO_CONSOLE ? "enabled" : "disabled")); bStats.addCustomChart(new SimplePie("log-to-file", () -> Properties.LOG_TO_FILE ? "enabled" : "disabled")); + bStats.addCustomChart(new SimplePie("auto-update", () -> !Properties.TURN_OFF_UPDATES ? "enabled" : "disabled")); + bStats.addCustomChart(new SimplePie("release-notifications", () -> !Properties.TURN_OFF_UPDATE_NOTIFIER ? "enabled" : "disabled")); + bStats.addCustomChart(new SimplePie("dev-build-notifications", () -> !Properties.TURN_OFF_DEV_UPDATE_NOTIFIER ? "enabled" : "disabled")); bStats.addCustomChart(new AdvancedBarChart("pluginProperties", () -> { Map map = new LinkedHashMap<>(); @@ -518,6 +521,9 @@ public class ChestShop extends JavaPlugin { map.put("bungeecord-messages", getChartArray(Properties.BUNGEECORD_MESSAGES)); map.put("log-to-console", getChartArray(Properties.LOG_TO_CONSOLE)); map.put("log-to-file", getChartArray(Properties.LOG_TO_FILE)); + map.put("auto-update", getChartArray(!Properties.TURN_OFF_UPDATES)); + map.put("release-notifications", getChartArray(!Properties.TURN_OFF_UPDATE_NOTIFIER)); + map.put("dev-build-notifications", getChartArray(!Properties.TURN_OFF_DEV_UPDATE_NOTIFIER)); return map; })); bStats.addCustomChart(new SimpleBarChart("shopContainers", @@ -538,6 +544,14 @@ public class ChestShop extends JavaPlugin { private void startUpdater() { if (Properties.TURN_OFF_UPDATES) { getLogger().info("Auto-updater is disabled. If you want the plugin to automatically download new releases then set 'TURN_OFF_UPDATES' to 'false' in your config.yml!"); + if (!Properties.TURN_OFF_UPDATE_NOTIFIER) { + final Updater updater = new Updater(this, PROJECT_BUKKITDEV_ID, this.getFile(), Updater.UpdateType.NO_DOWNLOAD, true); + getServer().getScheduler().runTaskAsynchronously(this, () -> { + if (updater.getResult() == Updater.UpdateResult.UPDATE_AVAILABLE) { + getLogger().info("There is a new version available: " + updater.getLatestName() + ". You can download it from https://dev.bukkit.org/projects/" + PROJECT_BUKKITDEV_ID); + } + }); + } return; } diff --git a/src/main/java/com/Acrobot/ChestShop/Configuration/Properties.java b/src/main/java/com/Acrobot/ChestShop/Configuration/Properties.java index cb2e7e7..93e0ee6 100644 --- a/src/main/java/com/Acrobot/ChestShop/Configuration/Properties.java +++ b/src/main/java/com/Acrobot/ChestShop/Configuration/Properties.java @@ -103,6 +103,9 @@ public class Properties { @ConfigurationComment("Do you want to turn off the automatic updates of ChestShop?") public static boolean TURN_OFF_UPDATES = true; + @ConfigurationComment("Do you want to turn off the automatic notifications for releases?") + public static boolean TURN_OFF_UPDATE_NOTIFIER = false; + @ConfigurationComment("Do you want to turn off the automatic notifications for new development builds?") public static boolean TURN_OFF_DEV_UPDATE_NOTIFIER = false; diff --git a/src/main/java/com/Acrobot/ChestShop/Updater/Updater.java b/src/main/java/com/Acrobot/ChestShop/Updater/Updater.java index 851380e..741b5dc 100644 --- a/src/main/java/com/Acrobot/ChestShop/Updater/Updater.java +++ b/src/main/java/com/Acrobot/ChestShop/Updater/Updater.java @@ -502,7 +502,7 @@ public final class Updater { * @return true if Updater should consider the remote version an update, false if not. */ public boolean shouldUpdate(String localVersion, String remoteVersion) { - if (localVersion.contains("DEV") || getLatestType() != ReleaseType.RELEASE) { + if (this.type != Updater.UpdateType.NO_DOWNLOAD && localVersion.contains("DEV") || getLatestType() != ReleaseType.RELEASE) { return false; //Do not download alphas or betas }