Skip to content

Commit 6ecba29

Browse files
committed
Added UpdateCheck task to notify servers without restart
1 parent 1956d5a commit 6ecba29

2 files changed

Lines changed: 53 additions & 1 deletion

File tree

src/main/java/de/lostesburger/mySqlPlayerBridge/Main.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import de.lostesburger.mySqlPlayerBridge.Utils.Chat;
2121
import de.lostesburger.mySqlPlayerBridge.Utils.Checks.DatabaseConfigCheck;
2222
import de.lostesburger.mySqlPlayerBridge.Serialization.NBTSerialization.NBTSerializer;
23+
import de.lostesburger.mySqlPlayerBridge.Utils.Checks.UpdateCheck;
2324
import de.lostesburger.mySqlPlayerBridge.Utils.Utils;
2425
import org.bukkit.Bukkit;
2526
import org.bukkit.configuration.file.FileConfiguration;
@@ -141,7 +142,7 @@ public void onEnable() {
141142
* Checks
142143
*/
143144
this.getLogger().log(Level.INFO, "Checking for updates ...");
144-
new PluginSmithsUpdateCheck(this, version, pluginName, prefix);
145+
new UpdateCheck(this, version, pluginName, prefix);
145146
this.getLogger().log(Level.INFO, "Checking database Configuration...");
146147

147148
if (!new DatabaseConfigCheck(mysqlConf).isSetup()) {
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package de.lostesburger.mySqlPlayerBridge.Utils.Checks;
2+
3+
import de.lostesburger.corelib.Chat.ColorUtils.ColorUtils;
4+
import de.lostesburger.corelib.PluginSmiths.License.PluginSmithsAPI;
5+
import de.lostesburger.corelib.Scheduler.Scheduler;
6+
import de.lostesburger.mySqlPlayerBridge.Main;
7+
import org.bukkit.event.EventHandler;
8+
import org.bukkit.event.Listener;
9+
import org.bukkit.event.player.PlayerJoinEvent;
10+
import org.bukkit.plugin.java.JavaPlugin;
11+
12+
import java.util.logging.Level;
13+
14+
public class UpdateCheck implements Listener {
15+
private boolean updateAvailable = false;
16+
private String latestVersion;
17+
private String currentVer;
18+
private String prefix;
19+
private String pluginName;
20+
21+
public UpdateCheck(JavaPlugin plugin, String currentVersion, String pluginName, String prefix) {
22+
Scheduler.Task task = Scheduler.runTimerAsync(() -> {
23+
String latestVersion = PluginSmithsAPI.getLatestPluginVersion(pluginName);
24+
this.latestVersion = latestVersion;
25+
this.currentVer = currentVersion;
26+
this.prefix = prefix;
27+
this.pluginName = pluginName;
28+
if (!latestVersion.equalsIgnoreCase(currentVersion)) {
29+
this.updateAvailable = true;
30+
plugin.getLogger().log(Level.INFO, "A new version of this plugin is available! Current version: " + currentVersion + " Latest version: " + latestVersion);
31+
plugin.getServer().getPluginManager().registerEvents(this, plugin);
32+
}
33+
34+
}, 100L, 60*60,plugin);
35+
36+
Main.schedulers.add(task);
37+
}
38+
39+
@EventHandler
40+
public void onJoin(PlayerJoinEvent event) {
41+
if (this.updateAvailable) {
42+
Scheduler.runLaterAsync(() -> {
43+
if (event.getPlayer().hasPermission("mpb.notify") || event.getPlayer().getName() == "Lostes_Burger") {
44+
event.getPlayer().sendMessage(ColorUtils.toColor(this.prefix + "§c" + this.pluginName + " update available. §7Current version: " + this.currentVer + " §7Latest version: " + this.latestVersion));
45+
}
46+
}, 120, Main.getInstance());
47+
48+
49+
}
50+
}
51+
}

0 commit comments

Comments
 (0)