Added OP Player JoinEvent nofication when update available

This commit is contained in:
BigPappa committed 2026-06-15 13:30:19 -05:00
1 parent 6c19c18523
commit 4ee6495006
3 files changed
+91 -1

No files matched your search

@@ -24,6 +24,7 @@ public class RSServerAdmin extends JavaPlugin {
private WorldsDAO worldsDAO;
private CreeperSettingsDAO creeperSettingsDAO;
private MobEquipmentDropSettingsDAO equipmentDropSettingsDAO;
private GitHubUpdateChecker gitHubUpdateChecker;
@Override
public void onEnable() {
@@ -156,6 +157,11 @@ public class RSServerAdmin extends JavaPlugin {
this
);
getServer().getPluginManager().registerEvents(
new UpdateNotificationListener(),
this
);
} catch (Exception ex) {
getLogger().log(
@@ -169,9 +175,12 @@ public class RSServerAdmin extends JavaPlugin {
return;
}
gitHubUpdateChecker =
new GitHubUpdateChecker(
this
).checkForUpdates();
);
gitHubUpdateChecker.checkForUpdates();
getLogger().info("RS-ServerAdmin enabled.");
}
@@ -217,5 +226,10 @@ public class RSServerAdmin extends JavaPlugin {
return equipmentDropSettingsDAO;
}
public GitHubUpdateChecker getGitHubUpdateChecker() {
return gitHubUpdateChecker;
}
}
@@ -0,0 +1,55 @@
package com.rsscripting.serveradmin.listeners;
import com.rsscripting.serveradmin.RSServerAdmin;
import com.rsscripting.serveradmin.update.GitHubUpdateChecker;
import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
public class UpdateNotificationListener
implements Listener {
@EventHandler
public void onPlayerJoin(
PlayerJoinEvent event
) {
Player player =
event.getPlayer();
if (!player.isOp()) {
return;
}
GitHubUpdateChecker checker =
RSServerAdmin.getInstance()
.getGitHubUpdateChecker();
if (checker == null) {
return;
}
if (!checker.isUpdateAvailable()) {
return;
}
player.sendMessage(
ChatColor.YELLOW
+ "[RS-ServerAdmin] "
+ ChatColor.GOLD
+ "Update Available! "
+ ChatColor.GRAY
+ "Current: "
+ RSServerAdmin.getInstance()
.getDescription()
.getVersion()
+ " Latest: "
+ checker.getLatestVersionFound()
);
}
}
@@ -11,6 +11,8 @@ public class GitHubUpdateChecker {
private final JavaPlugin plugin;
private final String pomUrl;
private volatile boolean updateAvailable = false;
private volatile String latestVersion = null;
private static final String POM_URL =
"https://raw.githubusercontent.com/RS-Scripting/RS-ServerAdmin/main/pom.xml";
@@ -55,12 +57,19 @@ public class GitHubUpdateChecker {
latestVersion
)) {
updateAvailable = false;
plugin.getLogger().info(
"RS-ServerAdmin is up to date."
);
} else {
updateAvailable = true;
this.latestVersion =
latestVersion;
plugin.getLogger().warning(
"Update available! Current: "
+ currentVersion
@@ -118,4 +127,16 @@ public class GitHubUpdateChecker {
}
public boolean isUpdateAvailable() {
return updateAvailable;
}
public String getLatestVersionFound() {
return latestVersion;
}
}