mirror of
https://github.com/PikaMug/Quests.git
synced 2024-11-24 19:46:34 +01:00
Only advise updates for newer versions
This commit is contained in:
parent
d3ee8c6c4b
commit
2a48e147d1
@ -233,7 +233,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
|
|||||||
|
|
||||||
// 12 - Attempt to check for updates
|
// 12 - Attempt to check for updates
|
||||||
new BukkitUpdateChecker(this, 3711).getVersion(version -> {
|
new BukkitUpdateChecker(this, 3711).getVersion(version -> {
|
||||||
if (!getDescription().getVersion().split("-")[0].equalsIgnoreCase(version)) {
|
if (BukkitUpdateChecker.compareVersions(getDescription().getVersion().split("-")[0], version)) {
|
||||||
getLogger().info(ChatColor.DARK_GREEN + BukkitLang.get("updateTo").replace("<version>",
|
getLogger().info(ChatColor.DARK_GREEN + BukkitLang.get("updateTo").replace("<version>",
|
||||||
version).replace("<url>", ChatColor.AQUA + getDescription().getWebsite()));
|
version).replace("<url>", ChatColor.AQUA + getDescription().getWebsite()));
|
||||||
}
|
}
|
||||||
|
@ -872,7 +872,7 @@ public class BukkitPlayerListener implements Listener {
|
|||||||
final Player player = event.getPlayer();
|
final Player player = event.getPlayer();
|
||||||
if (player.hasPermission("quests.admin.update")) {
|
if (player.hasPermission("quests.admin.update")) {
|
||||||
new BukkitUpdateChecker(plugin, 3711).getVersion(version -> {
|
new BukkitUpdateChecker(plugin, 3711).getVersion(version -> {
|
||||||
if (!plugin.getDescription().getVersion().split("-")[0].equalsIgnoreCase(version)) {
|
if (BukkitUpdateChecker.compareVersions(plugin.getDescription().getVersion().split("-")[0], version)) {
|
||||||
event.getPlayer().sendMessage(ChatColor.GRAY + "[" + ChatColor.YELLOW + "Quests" + ChatColor.GRAY
|
event.getPlayer().sendMessage(ChatColor.GRAY + "[" + ChatColor.YELLOW + "Quests" + ChatColor.GRAY
|
||||||
+ "] " + ChatColor.GREEN + BukkitLang.get(player, "updateTo").replace("<version>",
|
+ "] " + ChatColor.GREEN + BukkitLang.get(player, "updateTo").replace("<version>",
|
||||||
version).replace("<url>", ChatColor.DARK_AQUA + "" + ChatColor.UNDERLINE
|
version).replace("<url>", ChatColor.DARK_AQUA + "" + ChatColor.UNDERLINE
|
||||||
|
@ -37,10 +37,37 @@ public class BukkitUpdateChecker {
|
|||||||
if (scanner.hasNext()) {
|
if (scanner.hasNext()) {
|
||||||
consumer.accept(scanner.next());
|
consumer.accept(scanner.next());
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (final IOException e) {
|
||||||
this.plugin.getLogger().info("Update check failed: " + e.getMessage());
|
this.plugin.getLogger().info("Update check failed: " + e.getMessage());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares two valid semantic versions, i.e. 5.0.3
|
||||||
|
*
|
||||||
|
* @param currentVersion Current resource version
|
||||||
|
* @param compareVersion Resource version to compare against
|
||||||
|
* @return true if compared version is higher
|
||||||
|
*/
|
||||||
|
public static boolean compareVersions(final String currentVersion, final String compareVersion) {
|
||||||
|
if (currentVersion == null || compareVersion == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
final String[] currentParts = currentVersion.split("\\.");
|
||||||
|
final String[] compareParts = compareVersion.split("\\.");
|
||||||
|
final int length = Math.max(currentParts.length, compareParts.length);
|
||||||
|
if (length > 3) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < length; i++) {
|
||||||
|
final int currentPart = Integer.parseInt(currentParts[i]);
|
||||||
|
final int comparePart = Integer.parseInt(compareParts[i]);
|
||||||
|
if (comparePart > currentPart) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user