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