Update notifications.

This commit is contained in:
Sauilitired
2019-03-18 19:49:22 +01:00
parent 806124b047
commit 0b77b863ba
9 changed files with 245 additions and 3 deletions

View File

@ -37,6 +37,12 @@ shadowJar {
dependencies {
include(dependency(':Core'))
include(dependency('org.bstats:bstats-bukkit:1.4'))
// update notification stuff
include(dependency('com.github.Sauilitired:Jenkins4J:2.0-SNAPSHOT'))
include(dependency('com.squareup.retrofit2:retrofit:2.4.0'))
include(dependency('com.squareup.okhttp3:okhttp:3.14.0'))
include(dependency('com.squareup.okio:okio:2.2.2'))
include(dependency('org.jetbrains.kotlin:kotlin-stdlib:1.3.21'))
}
// relocate('org.mcstats', 'com.plotsquared.stats')
archiveName = "${parent.name}-${project.name}-${parent.version}.jar"

View File

@ -137,6 +137,33 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
}
new PlotSquared(this, "Bukkit");
// Check for updates
if (PlotSquared.get().getUpdateUtility() != null) {
final UpdateUtility updateUtility = PlotSquared.get().getUpdateUtility();
updateUtility.checkForUpdate(this.getPluginVersionString(), ((updateDescription, throwable) -> {
Bukkit.getScheduler().runTask(BukkitMain.this, () -> {
getLogger().info("-------- PlotSquared Update Check --------");
if (throwable != null) {
getLogger().severe(String.format("Could not check for update. Reason: %s",
throwable.getMessage()));
} else {
if (updateDescription == null) {
getLogger().info("You appear to be running the latest version of PlotSquared. Congratulations!");
} else {
getLogger().info("There appears to be a PlotSquared update available!");
getLogger().info(String.format("You are running version %s,"
+ " the newest available version is %s", getPluginVersionString(), updateDescription.getVersion()));
getLogger().info(String.format("Update URL: %s", updateDescription.getUrl()));
}
}
getLogger().info("-------- PlotSquared Update Check --------");
});
}));
} else {
getLogger().warning("Update checking disabled. Skipping.");
}
if (Settings.Enabled_Components.METRICS) {
this.startMetrics();
} else {

View File

@ -631,6 +631,29 @@ import java.util.regex.Pattern;
}
EventUtil.manager.doJoinTask(pp);
}, 20);
if (pp.hasPermission(Captions.PERMISSION_ADMIN_UPDATE_NOTIFICATION.s()) &&
PlotSquared.get().getUpdateUtility() != null) {
final UpdateUtility updateUtility = PlotSquared.get().getUpdateUtility();
final BukkitMain bukkitMain = BukkitMain.getPlugin(BukkitMain.class);
updateUtility.checkForUpdate(bukkitMain.getPluginVersionString(), ((updateDescription, throwable) -> {
if (throwable != null) {
bukkitMain.getLogger().severe(String.format("Could not check for update. Reason: %s",
throwable.getMessage()));
} else {
if (updateDescription != null) {
new PlotMessage("-------- ").color("$2").text("PlotSquared Update Notification").color("$1").text(" --------").color("$2")
.send(pp);
new PlotMessage("There appears to be a PlotSquared update available!").color("$1").send(pp);
new PlotMessage(String.format("You are running version %s,"
+ " the newest available version is %s", bukkitMain.getPluginVersionString(), updateDescription.getVersion())).color("$1").send(pp);
new PlotMessage("Update URL").color("$1").text(": ").color("$2").text(updateDescription.getUrl()).tooltip("Download update").send(pp);
new PlotMessage("-------- ").color("$2").text("PlotSquared Update Notification").color("$1").text(" --------").color("$2")
.send(pp);
}
}
}));
}
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)