Fix /updates
Some checks failed
/ deploy (push) Has been cancelled

This commit is contained in:
Minecon724 2024-12-02 18:36:21 +01:00
parent 2ded40ca0f
commit aaa1a78051
Signed by: Minecon724
GPG key ID: 3CCC4D267742C8E8
2 changed files with 29 additions and 15 deletions

View file

@ -26,23 +26,26 @@ public class UpdaterCommands implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if (UpdateChecker.lastChecked == null) {
sender.sendMessage("Not checked yet");
sender.sendMessage(Language.getString("updatesNotChecked"));
return true;
}
String lastChecked = UpdateChecker.lastChecked.format(DateTimeFormatter.ISO_LOCAL_TIME);
String lastChecked = UpdateChecker.lastChecked.format(DateTimeFormatter.ofPattern("HH:mm"));
int n = UpdateChecker.availableUpdates.size();
if (n > 0) {
BaseComponent[] components = UpdateChecker.availableUpdates.stream()
.map(u -> resourceToBaseComponent(u))
.toArray(BaseComponent[]::new);
components = new ComponentBuilder(Language.getString("updateAvailableNotice").formatted(n) + "\n")
.append(components)
.create();
sender.spigot().sendMessage(components);
sender.spigot().sendMessage(
new ComponentBuilder(Language.getString("updateAvailableNotice").formatted(n)).color(ChatColor.GRAY).build()
);
int i = 0;
for (VersionedResource v : UpdateChecker.availableUpdates) {
sender.spigot().sendMessage(
new ComponentBuilder(++i + ". ").color(ChatColor.GRAY).build(), resourceToBaseComponent(v)
);
}
} else {
sender.sendMessage("No available updates. Last checked: " + lastChecked);
sender.sendMessage(Language.getString("updatesNoUpdates").formatted(lastChecked));
}
return true;
@ -50,12 +53,15 @@ public class UpdaterCommands implements CommandExecutor {
private BaseComponent resourceToBaseComponent(VersionedResource v) {
Color nameColor = Color.decode("#" + Integer.toHexString(v.resource().name().hashCode()).substring(0, 6));
ComponentBuilder componentBuilder = new ComponentBuilder(v.resource().name()).color(ChatColor.of(nameColor))
BaseComponent component = new ComponentBuilder(v.resource().name()).color(ChatColor.of(nameColor))
.append(" (").color(ChatColor.DARK_GRAY)
.append(v.running().label()).color(ChatColor.GRAY)
.append(" -> ").color(ChatColor.DARK_GRAY)
.append(v.latest().label()).color(ChatColor.of(nameColor.brighter()))
.append(")").color(ChatColor.DARK_GRAY)
.build();
component = new ComponentBuilder(component)
.event(
new ClickEvent(
ClickEvent.Action.OPEN_URL,
@ -65,10 +71,11 @@ public class UpdaterCommands implements CommandExecutor {
.event(
new HoverEvent(
HoverEvent.Action.SHOW_TEXT,
new Text("Click to open on SpigotMC \"%s\"".formatted(v.latest().description().title()))
new Text(Language.getString("updatesClickToOpen").formatted(v.latest().description().title()))
)
);
)
.build();
return componentBuilder.build();
return component;
}
}

View file

@ -5,4 +5,11 @@
#
updateAvailableNotice = Available updates (%d):
pomodoroEndKick = Break time! Come back in 5 minutes.
pomodoroEndKick = Break time! Come back in 5 minutes.
# Used in /updates
updatesNotChecked = Not checked yet
# %s is time as HH:mm
updatesNoUpdates = No available updates. Last checked: %s
# %s is update title
updatesClickToOpen = Click to open on SpigotMC "%s"