Finish update system

This commit is contained in:
libraryaddict
2020-04-27 16:56:48 +12:00
parent b247a49a23
commit 7090ea51cc
6 changed files with 165 additions and 63 deletions

View File

@@ -135,7 +135,23 @@ public class LibsDisguisesCommand implements CommandExecutor, TabCompleter {
continue;
}
tabs.addAll(command.getTabComplete());
if (origArgs.length <= 1) {
tabs.addAll(command.getTabComplete());
} else {
for (String s : command.getTabComplete()) {
if (!s.contains(" ")) {
continue;
}
String[] split = s.split(" ");
if (!args[0].equalsIgnoreCase(split[0])) {
continue;
}
tabs.add(split[1]);
}
}
}
return filterTabs(tabs, origArgs);

View File

@@ -1,11 +1,12 @@
package me.libraryaddict.disguise.commands.libsdisguises;
import me.libraryaddict.disguise.DisguiseConfig;
import me.libraryaddict.disguise.LibsDisguises;
import me.libraryaddict.disguise.utilities.DisguiseUtilities;
import me.libraryaddict.disguise.utilities.updates.UpdateChecker;
import me.libraryaddict.disguise.utilities.plugin.PluginInformation;
import me.libraryaddict.disguise.utilities.translations.LibsMsg;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
@@ -22,7 +23,7 @@ public class LDUpdate implements LDCommand {
// Update by download
// Update check
// Update to latest dev build
return Arrays.asList("update", "update?", "update!");
return Arrays.asList("update", "update dev", "update release", "changelog", "update!");
}
@Override
@@ -30,6 +31,25 @@ public class LDUpdate implements LDCommand {
return "libsdisguises.update";
}
private void doChangelog(CommandSender sender) {
UpdateChecker checker = LibsDisguises.getInstance().getUpdateChecker();
if (checker.getUpdate() == null) {
sender.sendMessage(LibsMsg.UPDATE_REQUIRED.get());
return;
}
if (!checker.getUpdate().isReleaseBuild()) {
sender.sendMessage(
ChatColor.GOLD + "You are on build " + (LibsDisguises.getInstance().isNumberedBuild() ? "#" : "") +
LibsDisguises.getInstance().getBuildNo());
}
for (String msg : checker.getUpdate().getChangelog()) {
sender.sendMessage(ChatColor.GOLD + msg);
}
}
@Override
public void onCommand(CommandSender sender, String[] args) {
UpdateChecker checker = LibsDisguises.getInstance().getUpdateChecker();
@@ -39,20 +59,33 @@ public class LDUpdate implements LDCommand {
return;
}
boolean check = args[0].endsWith("?");
boolean force = args[0].endsWith("!");
if (args[0].equalsIgnoreCase("changelog")) {
doChangelog(sender);
return;
}
if (!check && !force && checker.getUpdate() != null) {
if (checker.getUpdate().getVersion().equals(checker.getUpdate().isReleaseBuild() ?
LibsDisguises.getInstance().getDescription().getDescription() :
LibsDisguises.getInstance().getBuildNumber())) {
boolean releaseBuilds = checker.isUsingReleaseBuilds();
if (args.length > 1) {
if (args[1].equalsIgnoreCase("dev")) {
releaseBuilds = false;
} else if (args[1].equalsIgnoreCase("release")) {
releaseBuilds = true;
} else {
sender.sendMessage(LibsMsg.LIBS_UPDATE_UNKNOWN_BRANCH.get());
return;
}
DisguiseConfig.setUsingReleaseBuilds(releaseBuilds);
}
if (checker.getUpdate() != null && checker.getUpdate().isReleaseBuild() == releaseBuilds) {
if (checker.isServerLatestVersion()) {
sender.sendMessage(LibsMsg.UPDATE_ON_LATEST.get());
return;
}
if (checker.getLastDownload() != null && checker.getUpdate().getVersion()
.equals(checker.isUsingReleaseBuilds() ? checker.getLastDownload().getVersion() :
checker.getLastDownload().getBuildNumber())) {
if (checker.isOnLatestUpdate(true)) {
sender.sendMessage(LibsMsg.UPDATE_ALREADY_DOWNLOADED.get());
return;
}
@@ -63,7 +96,7 @@ public class LDUpdate implements LDCommand {
public void run() {
LibsMsg updateResult = null;
if (check || checker.getUpdate() == null || force) {
if (checker.getUpdate() == null || args.length > 1 || checker.isOldUpdate()) {
updateResult = checker.doUpdateCheck();
}
@@ -72,12 +105,17 @@ public class LDUpdate implements LDCommand {
return;
}
if (!checker.isUpdateReady()) {
sender.sendMessage(LibsMsg.UPDATE_ON_LATEST.get());
if (checker.isOnLatestUpdate(true)) {
if (checker.getLastDownload() != null) {
sender.sendMessage(LibsMsg.UPDATE_ALREADY_DOWNLOADED.get());
} else {
sender.sendMessage(LibsMsg.UPDATE_ON_LATEST.get());
}
return;
}
if (check) {
if (!args[0].endsWith("!")) {
if (updateResult != null) {
sender.sendMessage(updateResult.get());
} else {