diff --git a/build.gradle b/build.gradle index f483246..9e3c990 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { } group 'net.william278' -version '2.0.2' +version '2.0.3' defaultTasks 'licenseFormat', 'build' repositories { diff --git a/src/main/java/net/william278/desertwell/about/AboutMenu.java b/src/main/java/net/william278/desertwell/about/AboutMenu.java index edf085d..7f76c7e 100644 --- a/src/main/java/net/william278/desertwell/about/AboutMenu.java +++ b/src/main/java/net/william278/desertwell/about/AboutMenu.java @@ -23,6 +23,7 @@ import net.kyori.adventure.text.Component; import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.event.ClickEvent; +import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.TextColor; import net.kyori.adventure.text.format.TextDecoration; @@ -31,6 +32,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; /** * Utility for displaying a menu of information about a plugin @@ -83,18 +85,28 @@ public class AboutMenu { for (Map.Entry> entry : attributions.entrySet()) { builder.append(Component.newline()) .append(Component.text("• " + entry.getKey() + ": ").color(NamedTextColor.WHITE)); - entry.getValue().stream().map(Credit::toComponent).forEach(name -> builder - .append(name) - .append(Component.text(", "))); + + final AtomicInteger credits = new AtomicInteger(); + entry.getValue().stream().map(Credit::toComponent).forEach(name -> { + if (credits.getAndIncrement() > 0) { + builder.append(Component.text(", ")); + } + builder.append(name).color(secondaryColor); + }); } // Add buttons if (!buttons.isEmpty()) { builder.append(Component.newline()).append(Component.newline()) .append(Component.text("Links: ").color(secondaryColor)); - buttons.stream().map(Link::toComponent).forEach(link -> builder - .append(link) - .append(Component.text(" "))); + + final AtomicInteger links = new AtomicInteger(); + buttons.stream().map(Link::toComponent).forEach(link -> { + if (links.getAndIncrement() > 0) { + builder.append(Component.text(" ")); + } + builder.append(link); + }); } return builder.build(); @@ -344,7 +356,7 @@ public class AboutMenu { public Component toComponent() { final ComponentBuilder builder = Component.text().content(name); if (description != null) { - builder.append(Component.text(" (" + description + ")")); + builder.hoverEvent(HoverEvent.showText(Component.text(description, color))); } if (url != null) { builder.clickEvent(ClickEvent.openUrl(url));