diff --git a/pom.xml b/pom.xml
index 3e5c06a..25988b7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -125,7 +125,7 @@
net.knarcraft
knarlib
- 1.2.7
+ 1.2.8
compile
diff --git a/src/main/java/net/knarcraft/bookswithoutborders/BooksWithoutBorders.java b/src/main/java/net/knarcraft/bookswithoutborders/BooksWithoutBorders.java
index ff659df..f71fd25 100644
--- a/src/main/java/net/knarcraft/bookswithoutborders/BooksWithoutBorders.java
+++ b/src/main/java/net/knarcraft/bookswithoutborders/BooksWithoutBorders.java
@@ -43,6 +43,7 @@ import net.knarcraft.bookswithoutborders.listener.BookshelfListener;
import net.knarcraft.bookswithoutborders.listener.PlayerEventListener;
import net.knarcraft.bookswithoutborders.listener.SignEventListener;
import net.knarcraft.bookswithoutborders.utility.BookFileHelper;
+import net.knarcraft.knarlib.formatting.FormatBuilder;
import net.knarcraft.knarlib.formatting.StringFormatter;
import net.knarcraft.knarlib.formatting.Translator;
import net.knarcraft.knarlib.property.ColorConversion;
@@ -224,6 +225,7 @@ public class BooksWithoutBorders extends JavaPlugin {
stringFormatter.setColorConversion(ColorConversion.RGB);
stringFormatter.setSuccessColor(ChatColor.of("#A9FF84"));
stringFormatter.setErrorColor(ChatColor.of("#FF84A9"));
+ FormatBuilder.setStringFormatter(stringFormatter);
booksWithoutBorders = this;
playerBooksList = new HashMap<>();
diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandAddTitlePage.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandAddTitlePage.java
index 9f51ea3..9a33f12 100644
--- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandAddTitlePage.java
+++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandAddTitlePage.java
@@ -6,7 +6,7 @@ import net.knarcraft.bookswithoutborders.config.translation.Translatable;
import net.knarcraft.bookswithoutborders.utility.BookFormatter;
import net.knarcraft.bookswithoutborders.utility.BookHelper;
import net.knarcraft.bookswithoutborders.utility.InventoryHelper;
-import net.knarcraft.knarlib.formatting.StringFormatter;
+import net.knarcraft.knarlib.formatting.FormatBuilder;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@@ -28,26 +28,25 @@ public class CommandAddTitlePage implements TabExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s,
@NotNull String[] arguments) {
- StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
if (!(sender instanceof Player player)) {
- stringFormatter.displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY);
+ new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender);
return false;
}
ItemStack heldBook = InventoryHelper.getHeldBook(player);
if (heldBook == null) {
- stringFormatter.displayErrorMessage(sender, Translatable.ERROR_NOT_HOLDING_ANY_BOOK);
+ new FormatBuilder(Translatable.ERROR_NOT_HOLDING_ANY_BOOK).error(sender);
return false;
}
int index;
if (arguments.length < 1) {
- if (InventoryHelper.notHoldingOneWrittenBookCheck(player,
- stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK, "{action}",
- stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_ADD_TITLE_AUTHOR_PAGE)),
- stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}",
- stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_ADD_TITLE_AUTHOR_PAGE)))) {
+ String noBookError = new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK).replace("{action}",
+ Translatable.ACTION_ADD_TITLE_AUTHOR_PAGE).build();
+ String twoBooksError = new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}",
+ Translatable.ACTION_ADD_TITLE_AUTHOR_PAGE).build();
+ if (InventoryHelper.notHoldingOneWrittenBookCheck(player, noBookError, twoBooksError)) {
return false;
}
@@ -56,7 +55,7 @@ public class CommandAddTitlePage implements TabExecutor {
try {
index = Integer.parseInt(arguments[0]) - 1;
} catch (NumberFormatException exception) {
- stringFormatter.displayErrorMessage(sender, Translatable.ERROR_INVALID_BOOK_PAGE);
+ new FormatBuilder(Translatable.ERROR_INVALID_BOOK_PAGE).error(sender);
return false;
}
}
@@ -74,22 +73,23 @@ public class CommandAddTitlePage implements TabExecutor {
BookMeta bookMeta = (BookMeta) heldBook.getItemMeta();
if (bookMeta == null) {
- stringFormatter.displayErrorMessage(sender, Translatable.ERROR_METADATA_MISSING);
+ new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(sender);
return false;
}
List pages = new ArrayList<>(bookMeta.getPages());
if (index < 0) {
- stringFormatter.displayErrorMessage(sender, Translatable.ERROR_INVALID_BOOK_PAGE);
+ new FormatBuilder(Translatable.ERROR_INVALID_BOOK_PAGE).error(sender);
return false;
}
if (title == null && heldBook.getType() == Material.WRITTEN_BOOK) {
// Add a page with the book title and book author
String loreSeparator = BooksWithoutBorders.getConfiguration().getLoreSeparator();
- String pageText = formatTitle(stringFormatter.replacePlaceholders(Formatting.NEUTRAL_TITLE_PAGE_TITLE_AUTHOR_FORMAT,
- List.of("{title}", "{separator}", "{author}"), List.of(BookHelper.getBookTitle(bookMeta),
- loreSeparator, BookHelper.getBookAuthor(bookMeta, null))));
+ String pageText = formatTitle(new FormatBuilder(Formatting.NEUTRAL_TITLE_PAGE_TITLE_AUTHOR_FORMAT).
+ replace("{title}", BookFormatter.stripColor(BookHelper.getBookTitle(bookMeta))).
+ replace("{separator}", loreSeparator).
+ replace("{author}", BookFormatter.stripColor(BookHelper.getBookAuthor(bookMeta, null))).build());
if (index > pages.size()) {
pages.add(pageText);
@@ -113,7 +113,7 @@ public class CommandAddTitlePage implements TabExecutor {
}
bookMeta.setPages(pages);
heldBook.setItemMeta(bookMeta);
- stringFormatter.displaySuccessMessage(sender, Translatable.SUCCESS_TITLE_PAGE_ADDED);
+ new FormatBuilder(Translatable.SUCCESS_TITLE_PAGE_ADDED).success(sender);
return true;
}
@@ -124,21 +124,17 @@ public class CommandAddTitlePage implements TabExecutor {
* @return The formatted input
*/
private String formatTitle(@NotNull String input) {
- StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter();
String loreSeparator = BooksWithoutBorders.getConfiguration().getLoreSeparator();
if (input.contains(loreSeparator)) {
String[] parts = input.split(loreSeparator);
StringBuilder output = new StringBuilder();
- output.append(stringFormatter.replacePlaceholder(Formatting.NEUTRAL_TITLE_PAGE_HEADER_FORMAT,
- "{header}", BookFormatter.stripColor(parts[0])));
-
+ output.append(new FormatBuilder(Formatting.NEUTRAL_TITLE_PAGE_HEADER_FORMAT).replace("{header}", parts[0]).color().build());
for (int i = 1; i < parts.length; i++) {
- output.append(stringFormatter.replacePlaceholder(Formatting.NEUTRAL_TITLE_PAGE_TEXT_FORMAT,
- "{text}", BookFormatter.stripColor(parts[i])));
+ output.append(new FormatBuilder(Formatting.NEUTRAL_TITLE_PAGE_TEXT_FORMAT).replace("{text}", parts[i]).color().build());
}
return output.toString();
} else {
- return input;
+ return new FormatBuilder(Formatting.NEUTRAL_TITLE_PAGE_HEADER_FORMAT).replace("{header}", input).color().build();
}
}
@@ -163,7 +159,7 @@ public class CommandAddTitlePage implements TabExecutor {
}
}
} else if (arguments.length == 2) {
- String separator = BooksWithoutBorders.getConfiguration().getTitleAuthorSeparator();
+ String separator = BooksWithoutBorders.getConfiguration().getLoreSeparator();
return List.of("Title", "Chapter" + separator + "Description");
}
return List.of();