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")));