diff --git a/sources/src/main/java/io/akarin/server/mixin/core/MixinVersionCommand.java b/sources/src/main/java/io/akarin/server/mixin/core/MixinVersionCommand.java index 37a965e91..d32fbef7d 100644 --- a/sources/src/main/java/io/akarin/server/mixin/core/MixinVersionCommand.java +++ b/sources/src/main/java/io/akarin/server/mixin/core/MixinVersionCommand.java @@ -64,16 +64,19 @@ public class MixinVersionCommand { // (this is really a special case that we cancel new tasks instead let them wait). versionObtaining = true; - if (hasVersion) { - long current = System.currentTimeMillis(); + if (hasVersion) { + long current = System.currentTimeMillis(); if (current - lastCheckMillis > 7200000 /* 2 hours */) { lastCheckMillis = current; - obtainVersion(sender); - /* TODO Option: legacy-versioning-compat */ currentSender = sender; - } else { - sender.sendMessage(versionMessage); + hasVersion = false; + } else { + sender.sendMessage(versionMessage); return; - } + } + } + if (!hasVersion) { + obtainVersion(sender); + /* TODO Option: legacy-versioning-compat */ currentSender = sender; } } @@ -98,6 +101,7 @@ public class MixinVersionCommand { MCUtil.scheduleAsyncTask(() -> { // This should be lying in 'sendVersion' method, but comes here for relax main thread versionWaiters.add(sender); + sender.sendMessage("Checking version, please wait..."); String version = Bukkit.getVersion(); if (version == null) { @@ -107,7 +111,6 @@ public class MixinVersionCommand { } if (version.startsWith("git-Akarin-")) { - String[] parts = version.substring("git-Akarin-".length()).split("[-\\s]"); int distance = getDistance(null, parts[0]); switch (distance) { @@ -126,7 +129,6 @@ public class MixinVersionCommand { } else { customVersion = true; } - versionObtaining = false; }); }