From 9f979dd56ec2bb2019053cd5a51e352ef798714d Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Sun, 3 Aug 2025 02:07:38 +0200 Subject: [PATCH] Makes the book list's colors more consistent --- .../bookswithoutborders/gui/BookIndex.java | 39 ++++++++++++------- .../gui/PagedBookIndex.java | 2 +- 2 files changed, 25 insertions(+), 16 deletions(-) diff --git a/src/main/java/net/knarcraft/bookswithoutborders/gui/BookIndex.java b/src/main/java/net/knarcraft/bookswithoutborders/gui/BookIndex.java index f87f6a2..1e5cce6 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/gui/BookIndex.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/gui/BookIndex.java @@ -15,6 +15,8 @@ import java.util.Map; public abstract class BookIndex { protected final static int booksPerPage = 10; + protected final static @NotNull ChatColor interactColor = ChatColor.of("#FFD700"); + protected final static @NotNull ChatColor inactiveColor = ChatColor.of("#999999"); /** * Displays the correct GUI, if specified in the given arguments @@ -57,7 +59,7 @@ public abstract class BookIndex { * @param page

The current page

*/ protected static void displayPageCommand(@NotNull ComponentBuilder componentBuilder, @NotNull String command, int page) { - componentBuilder.append("[Page Command]", ComponentBuilder.FormatRetention.NONE).event(new HoverEvent( + componentBuilder.append("[Page Command]", ComponentBuilder.FormatRetention.NONE).color(interactColor).event(new HoverEvent( HoverEvent.Action.SHOW_TEXT, new Text("/" + command + " page" + page))).event( new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/" + command + " page" + page)); } @@ -71,7 +73,7 @@ public abstract class BookIndex { */ protected static void displayTotalPages(@NotNull ComponentBuilder componentBuilder, int page, int totalPages) { componentBuilder.append("Page " + page + " of " + totalPages, - ComponentBuilder.FormatRetention.NONE).color(ChatColor.GREEN); + ComponentBuilder.FormatRetention.NONE).color(inactiveColor); } /** @@ -83,20 +85,20 @@ public abstract class BookIndex { */ protected static void displayAlphabetIndex(@NotNull ComponentBuilder componentBuilder, @NotNull String command, @NotNull Map firstInstances) { - componentBuilder.append("[index] <", ComponentBuilder.FormatRetention.NONE); + componentBuilder.append("[index] <", ComponentBuilder.FormatRetention.NONE).color(inactiveColor); for (int characterIndex = 0; characterIndex <= 25; characterIndex++) { char character = (char) ('a' + characterIndex); if (firstInstances.containsKey(character)) { int pageIndex = (firstInstances.get(character) / booksPerPage) + 1; - componentBuilder.append(character + "").color( - ChatColor.AQUA).event(new ClickEvent(ClickEvent.Action.RUN_COMMAND, - "/" + command + " page" + pageIndex)).event(new HoverEvent( - HoverEvent.Action.SHOW_TEXT, new Text("To page " + pageIndex))); + componentBuilder.append(character + "").color(interactColor).event( + new ClickEvent(ClickEvent.Action.RUN_COMMAND, + "/" + command + " page" + pageIndex)).event(new HoverEvent( + HoverEvent.Action.SHOW_TEXT, new Text("Books starting with " + character))); } else { - componentBuilder.append(character + "", ComponentBuilder.FormatRetention.NONE).color(ChatColor.GRAY); + componentBuilder.append(character + "", ComponentBuilder.FormatRetention.NONE).color(inactiveColor); } } - componentBuilder.append(">", ComponentBuilder.FormatRetention.NONE); + componentBuilder.append(">", ComponentBuilder.FormatRetention.NONE).color(inactiveColor); } /** @@ -112,9 +114,10 @@ public abstract class BookIndex { String fullCommand = "/" + command + " page" + (page - 1); HoverEvent prevPagePreview = new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text("To page " + (page - 1))); ClickEvent prevPageClick = new ClickEvent(ClickEvent.Action.RUN_COMMAND, fullCommand); - componentBuilder.append("Previous [<]", ComponentBuilder.FormatRetention.NONE).event(prevPagePreview).event(prevPageClick); + componentBuilder.append("Previous [<]", ComponentBuilder.FormatRetention.NONE).color(interactColor) + .event(prevPagePreview).event(prevPageClick); } else { - componentBuilder.append("Previous [<]", ComponentBuilder.FormatRetention.NONE).color(ChatColor.GRAY); + componentBuilder.append("Previous [<]", ComponentBuilder.FormatRetention.NONE).color(inactiveColor); } } @@ -132,9 +135,10 @@ public abstract class BookIndex { String fullCommand = "/" + command + " page" + (page + 1); HoverEvent nextPagePreview = new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text("To page " + (page + 1))); ClickEvent nextPageClick = new ClickEvent(ClickEvent.Action.RUN_COMMAND, fullCommand); - componentBuilder.append("Next [>]", ComponentBuilder.FormatRetention.NONE).event(nextPagePreview).event(nextPageClick); + componentBuilder.append("Next [>]", ComponentBuilder.FormatRetention.NONE).color(interactColor) + .event(nextPagePreview).event(nextPageClick); } else { - componentBuilder.append("Next [>]", ComponentBuilder.FormatRetention.NONE).color(ChatColor.GRAY); + componentBuilder.append("Next [>]", ComponentBuilder.FormatRetention.NONE).color(inactiveColor); } } @@ -146,9 +150,14 @@ public abstract class BookIndex { */ @NotNull protected static String getNiceName(@NotNull String bookPath) { + String separator = BooksWithoutBordersConfig.getTitleAuthorSeparator(); bookPath = ChatColor.translateAlternateColorCodes('&', bookPath.substring(0, bookPath.length() - 4)); - String[] parts = bookPath.split(BooksWithoutBordersConfig.getTitleAuthorSeparator()); - return parts[0].replace("_", " ") + ChatColor.RESET + " by " + parts[1] + ChatColor.RESET; + if (bookPath.contains(separator)) { + String[] parts = bookPath.split(separator); + return parts[0].replace("_", " ") + ChatColor.RESET + " by " + parts[1] + ChatColor.RESET; + } else { + return bookPath + ChatColor.RESET + " by Unknown" + ChatColor.RESET; + } } } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/gui/PagedBookIndex.java b/src/main/java/net/knarcraft/bookswithoutborders/gui/PagedBookIndex.java index bcc4ba3..2590098 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/gui/PagedBookIndex.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/gui/PagedBookIndex.java @@ -93,7 +93,7 @@ public class PagedBookIndex extends BookIndex { @NotNull List availableBooks) { int startIndex = (page - 1) * booksPerPage; for (int bookIndex = startIndex; bookIndex < Math.min(startIndex + booksPerPage, availableBooks.size()); bookIndex++) { - componentBuilder.append("[" + (bookIndex + 1) + "]").color(ChatColor.GOLD).event( + componentBuilder.append("[" + (bookIndex + 1) + "]").color(interactColor).event( new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/" + command + " " + (bookIndex + 1))).event(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text("Select book by index")));