Upload folder via GUI - src
This commit is contained in:
@@ -204,18 +204,55 @@ public class NexusLobby extends JavaPlugin implements Listener {
|
||||
|
||||
private void checkUpdates() {
|
||||
new UpdateChecker(this).getVersion(version -> {
|
||||
if (!this.getDescription().getVersion().equalsIgnoreCase(version)) {
|
||||
String currentVersion = this.getDescription().getVersion();
|
||||
if (isRemoteVersionNewer(currentVersion, version)) {
|
||||
this.updateAvailable = true;
|
||||
this.latestVersion = version;
|
||||
getLogger().warning("====================================================");
|
||||
getLogger().warning("Update gefunden! v" + getDescription().getVersion() + " -> v" + version);
|
||||
getLogger().warning("Update gefunden! v" + currentVersion + " -> v" + version);
|
||||
getLogger().warning("====================================================");
|
||||
} else {
|
||||
getLogger().info("NexusLobby ist aktuell (v" + version + ").");
|
||||
this.updateAvailable = false;
|
||||
this.latestVersion = "";
|
||||
getLogger().info("NexusLobby ist aktuell/neu genug (lokal v" + currentVersion + ", remote v" + version + ").");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private boolean isRemoteVersionNewer(String localVersion, String remoteVersion) {
|
||||
int[] local = extractVersionNumbers(localVersion);
|
||||
int[] remote = extractVersionNumbers(remoteVersion);
|
||||
|
||||
int max = Math.max(local.length, remote.length);
|
||||
for (int i = 0; i < max; i++) {
|
||||
int l = i < local.length ? local[i] : 0;
|
||||
int r = i < remote.length ? remote[i] : 0;
|
||||
if (r > l) return true;
|
||||
if (r < l) return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private int[] extractVersionNumbers(String version) {
|
||||
if (version == null || version.isBlank()) return new int[0];
|
||||
|
||||
java.util.regex.Matcher matcher = java.util.regex.Pattern.compile("\\\\d+").matcher(version);
|
||||
java.util.List<Integer> parts = new java.util.ArrayList<>();
|
||||
while (matcher.find()) {
|
||||
try {
|
||||
parts.add(Integer.parseInt(matcher.group()));
|
||||
} catch (NumberFormatException ignored) {
|
||||
parts.add(0);
|
||||
}
|
||||
}
|
||||
|
||||
int[] result = new int[parts.size()];
|
||||
for (int i = 0; i < parts.size(); i++) {
|
||||
result[i] = parts.get(i);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private void registerModules() {
|
||||
moduleManager.registerModule(new ProtectionModule());
|
||||
moduleManager.registerModule(new ScoreboardModule());
|
||||
|
||||
Reference in New Issue
Block a user