Added OP Player JoinEvent nofication when update available
This commit is contained in:
1 parent
6c19c18523
commit
4ee6495006
3 files changed
+93
-3
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;
|
||||
}
|
||||
|
||||
new GitHubUpdateChecker(
|
||||
this
|
||||
).checkForUpdates();
|
||||
gitHubUpdateChecker =
|
||||
new GitHubUpdateChecker(
|
||||
this
|
||||
);
|
||||
|
||||
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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user