Add release update notification (#541)

Also add that config option to our metrics
This commit is contained in:
Phoenix616 2024-02-07 16:10:08 +01:00
parent 2388da62a5
commit d3f8abb80e
No known key found for this signature in database
GPG Key ID: 40E2321E71738EB0
3 changed files with 18 additions and 1 deletions

View File

@ -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<String, int[]> 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;
}

View File

@ -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;

View File

@ -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
}