diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandBooksWithoutBorders.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandBooksWithoutBorders.java index 9304834..807b2c8 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandBooksWithoutBorders.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandBooksWithoutBorders.java @@ -9,7 +9,7 @@ import net.knarcraft.bookswithoutborders.config.translation.CostMessage; import net.knarcraft.bookswithoutborders.config.translation.Formatting; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.manager.EconomyManager; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.Material; import org.bukkit.command.Command; @@ -33,8 +33,6 @@ public class CommandBooksWithoutBorders implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] arguments) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); - String commands; String commandExplanation; @@ -44,16 +42,16 @@ public class CommandBooksWithoutBorders implements TabExecutor { commands = getCommandInfo(bwbCommand, sender, false); commandExplanation = getCommandExplanation(false); } else { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_UNKNOWN_COMMAND); + new FormatBuilder(Translatable.ERROR_UNKNOWN_COMMAND).error(sender); return false; } } else { commands = getCommands(sender); commandExplanation = getCommandExplanation(true); } - stringFormatter.displaySuccessMessage(sender, stringFormatter.replacePlaceholders( - Formatting.NEUTRAL_COMMANDS_HEADER, List.of("{bookPrice}", "{commands}", "{commandExplanation}"), - List.of(getBookPrice(), commands, commandExplanation))); + new FormatBuilder(Formatting.NEUTRAL_COMMANDS_HEADER).replace("{bookPrice}", getBookPrice()). + replace("{commands}", commands).replace("{commandExplanation}", commandExplanation). + success(sender); return true; } @@ -85,20 +83,18 @@ public class CommandBooksWithoutBorders implements TabExecutor { return ""; } - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); Material bookPriceType = config.getBookPriceType(); double bookPriceQuantity = config.getBookPriceQuantity(); if (bookPriceType != Material.AIR) { - return stringFormatter.replacePlaceholders(Formatting.NEUTRAL_COMMANDS_BOOK_PRICE_ITEM, - List.of("{quantity}", "{type}"), - List.of(String.valueOf((int) bookPriceQuantity), bookPriceType.toString())); + return new FormatBuilder(Formatting.NEUTRAL_COMMANDS_BOOK_PRICE_ITEM).replace("{quantity}", + String.valueOf((int) bookPriceQuantity)).replace("{type}", bookPriceType.toString()).build(); } else { EconomyManager economyManager = BooksWithoutBorders.getConfiguration().getEconomyManager(); if (economyManager.getEconomy() == null) { - return BooksWithoutBorders.getStringFormatter().getUnFormattedColoredMessage(CostMessage.ERROR_VAULT_COST_BUT_UNAVAILABLE) + "\n"; + return new FormatBuilder(CostMessage.ERROR_VAULT_COST_BUT_UNAVAILABLE).build() + "\n"; } else { - return stringFormatter.replacePlaceholder(Formatting.NEUTRAL_COMMANDS_BOOK_PRICE_ECO, - "{price}", economyManager.getEconomy().format(bookPriceQuantity)); + return new FormatBuilder(Formatting.NEUTRAL_COMMANDS_BOOK_PRICE_ECO).replace("{price}", + economyManager.getEconomy().format(bookPriceQuantity)).build(); } } } @@ -144,8 +140,8 @@ public class CommandBooksWithoutBorders implements TabExecutor { private String getCommandInfo(@NotNull BwBCommand bwBCommand, @NotNull CommandSender sender, boolean summary) { PluginCommand pluginCommand = BooksWithoutBorders.getInstance().getCommand(bwBCommand.toString()); if (pluginCommand == null) { - BooksWithoutBorders.log(Level.SEVERE, StringFormatter.replacePlaceholder( - StaticMessage.EXCEPTION_COMMAND_NOT_REGISTERED.toString(), "{command}", bwBCommand.toString())); + BooksWithoutBorders.log(Level.SEVERE, new FormatBuilder(StaticMessage.EXCEPTION_COMMAND_NOT_REGISTERED.toString()). + replace("{command}", bwBCommand.toString()).build()); return ""; } @@ -155,7 +151,6 @@ public class CommandBooksWithoutBorders implements TabExecutor { return ""; } - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); String description; String aliases = ""; String commandUsage; @@ -166,18 +161,18 @@ public class CommandBooksWithoutBorders implements TabExecutor { } else { commandUsage = pluginCommand.getUsage().replace("", pluginCommand.getName()); description = pluginCommand.getDescription(); - aliases = stringFormatter.replacePlaceholder(Formatting.NEUTRAL_COMMANDS_ALIASES, "{aliases}", - String.join(",", pluginCommand.getAliases())); + aliases = new FormatBuilder(Formatting.NEUTRAL_COMMANDS_ALIASES).replace("{aliases}", + String.join(",", pluginCommand.getAliases())).build(); } - String commandDescription = stringFormatter.replacePlaceholders(Formatting.NEUTRAL_COMMANDS_COMMAND, - List.of("{usage}", "{description}", "{aliases}"), List.of(commandUsage, description, aliases)); + String commandDescription = new FormatBuilder(Formatting.NEUTRAL_COMMANDS_COMMAND).replace("{usage}", + commandUsage).replace("{description}", description).replace("{aliases}", aliases).build(); if (!summary && sender.hasPermission(Permission.ADMIN.toString())) { if (permission == null) { - permission = stringFormatter.getUnFormattedColoredMessage(Formatting.NEUTRAL_COMMANDS_COMMAND_NO_PERMISSION_REQUIRED); + permission = new FormatBuilder(Formatting.NEUTRAL_COMMANDS_COMMAND_NO_PERMISSION_REQUIRED).build(); } - commandDescription += stringFormatter.replacePlaceholder(Formatting.NEUTRAL_COMMANDS_COMMAND_PERMISSION, "{permission}", permission); + commandDescription += new FormatBuilder(Formatting.NEUTRAL_COMMANDS_COMMAND_PERMISSION).replace("{permission}", permission).build(); } return commandDescription; } @@ -190,15 +185,10 @@ public class CommandBooksWithoutBorders implements TabExecutor { */ @NotNull private String getCommandExplanation(boolean summary) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); if (summary) { - return stringFormatter.replacePlaceholders(Formatting.NEUTRAL_COMMANDS_COMMAND, - List.of("{usage}", "{description}", "{aliases}"), List.of("Command", "Usage summary", "")); + return new FormatBuilder(Formatting.NEUTRAL_COMMANDS_SUMMARY).build(); } else { - return stringFormatter.replacePlaceholders(Formatting.NEUTRAL_COMMANDS_COMMAND, - List.of("{usage}", "{description}", "{aliases}"), List.of("Command and arguments", "Full description", - stringFormatter.replacePlaceholder(Formatting.NEUTRAL_COMMANDS_ALIASES, "{aliases}", "Alias list"))) + - stringFormatter.replacePlaceholder(Formatting.NEUTRAL_COMMANDS_COMMAND_PERMISSION, "{permission}", "Required permission"); + return new FormatBuilder(Formatting.NEUTRAL_COMMANDS_DESCRIPTION).build(); } } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandClear.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandClear.java index 557d1f7..af30970 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandClear.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandClear.java @@ -3,7 +3,7 @@ package net.knarcraft.bookswithoutborders.command; import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.utility.InventoryHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -25,18 +25,14 @@ public class CommandClear implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); - if (!(sender instanceof Player player)) { - BooksWithoutBorders.getStringFormatter().displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY); + new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender); return false; } if (InventoryHelper.notHoldingOneWritableBookCheck(player, - stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITABLE_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_CLEAR)), - stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_CLEAR)))) { + new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITABLE_BOOK).replace("{action}", Translatable.ACTION_CLEAR).build(), + new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_CLEAR).build())) { return false; } @@ -51,7 +47,7 @@ public class CommandClear implements TabExecutor { // Fallback to cleaning existing metadata 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; } bookMeta.setPages(""); @@ -60,7 +56,7 @@ public class CommandClear implements TabExecutor { bookMeta.setTitle(null); heldBook.setItemMeta(bookMeta); } - stringFormatter.displaySuccessMessage(sender, Translatable.SUCCESS_CLEARED); + new FormatBuilder(Translatable.SUCCESS_CLEARED).success(sender); return true; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandCopy.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandCopy.java index 48dc21e..d45eba7 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandCopy.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandCopy.java @@ -7,7 +7,7 @@ import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.utility.BookHelper; import net.knarcraft.bookswithoutborders.utility.InventoryHelper; import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.Material; import org.bukkit.command.Command; @@ -30,23 +30,19 @@ public class CommandCopy implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @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; } if (InventoryHelper.notHoldingOneWrittenBookCheck(player, - stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_COPY)), - stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_COPY)))) { + new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK).replace("{action}", Translatable.ACTION_COPY).build(), + new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_COPY).build())) { return false; } if (arguments.length < 1) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_COPY_COUNT_NOT_SPECIFIED); + new FormatBuilder(Translatable.ERROR_COPY_COUNT_NOT_SPECIFIED).error(player); return false; } @@ -54,12 +50,12 @@ public class CommandCopy implements TabExecutor { ItemStack heldBook = InventoryHelper.getHeldBook(player, true); int copies = Integer.parseInt(arguments[0]); if (copies <= 0) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_COPY_NEGATIVE_AMOUNT); + new FormatBuilder(Translatable.ERROR_COPY_NEGATIVE_AMOUNT).error(player); return false; } return performCopy(copies, player, heldBook); } catch (NumberFormatException ignored) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_COPY_INVALID_AMOUNT); + new FormatBuilder(Translatable.ERROR_COPY_INVALID_AMOUNT).error(player); return false; } } @@ -93,7 +89,7 @@ public class CommandCopy implements TabExecutor { } heldBook.setAmount(heldBook.getAmount() + copies); - BooksWithoutBorders.getStringFormatter().displaySuccessMessage(player, Translatable.SUCCESS_COPY); + new FormatBuilder(Translatable.SUCCESS_COPY).success(player); return true; } } @@ -124,13 +120,13 @@ public class CommandCopy implements TabExecutor { //Copy the vanilla behavior of refusing copying any further if (bookMeta.getGeneration() == BookMeta.Generation.COPY_OF_COPY || bookMeta.getGeneration() == BookMeta.Generation.TATTERED) { - BooksWithoutBorders.getStringFormatter().displayErrorMessage(player, Translatable.ERROR_BOOK_COPIED_TOO_FAR); + new FormatBuilder(Translatable.ERROR_BOOK_COPIED_TOO_FAR).error(player); return false; } //Make sure the player can fit the book in their inventory int nextAvailableSlot = player.getInventory().firstEmpty(); if (nextAvailableSlot == -1) { - BooksWithoutBorders.getStringFormatter().displayErrorMessage(player, Translatable.ERROR_INVENTORY_FULL); + new FormatBuilder(Translatable.ERROR_INVENTORY_FULL).error(player); return false; } //Make sure the player can pay for the copying diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDecrypt.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDecrypt.java index d54ec49..2b0c424 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDecrypt.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDecrypt.java @@ -6,7 +6,7 @@ import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.utility.BookHelper; import net.knarcraft.bookswithoutborders.utility.EncryptionHelper; import net.knarcraft.bookswithoutborders.utility.InventoryHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -27,25 +27,21 @@ public class CommandDecrypt implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @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; } if (InventoryHelper.notHoldingOneWrittenBookCheck(player, - stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_DECRYPT)), - stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_DECRYPT)))) { + new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK).replace("{action}", Translatable.ACTION_DECRYPT).build(), + new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_DECRYPT).build())) { return false; } ItemStack heldItem = InventoryHelper.getHeldBook(player, true); BookMeta bookMetadata = (BookMeta) heldItem.getItemMeta(); if (bookMetadata == null) { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_METADATA_MISSING); + new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(sender); return false; } @@ -54,7 +50,7 @@ public class CommandDecrypt implements TabExecutor { player.hasPermission(Permission.ADMIN.toString())) { return adminDecrypt(player, bookMetadata); } else if (arguments.length == 0) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_DECRYPT_MISSING_KEY); + new FormatBuilder(Translatable.ERROR_DECRYPT_MISSING_KEY).error(player); return false; } @@ -66,10 +62,10 @@ public class CommandDecrypt implements TabExecutor { if (book != null) { InventoryHelper.setHeldWrittenBook(player, book); - stringFormatter.displaySuccessMessage(player, Translatable.SUCCESS_DECRYPTED); + new FormatBuilder(Translatable.SUCCESS_DECRYPTED).success(player); return true; } else { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_DECRYPT_FAILED); + new FormatBuilder(Translatable.ERROR_DECRYPT_FAILED).error(player); return false; } } @@ -82,11 +78,10 @@ public class CommandDecrypt implements TabExecutor { * @return

True if successful

*/ private boolean adminDecrypt(@NotNull Player player, @NotNull BookMeta bookMetadata) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); ItemStack decrypted = EncryptionHelper.loadEncryptedBook(player, "", false, true); if (decrypted != null) { InventoryHelper.setHeldWrittenBook(player, decrypted); - stringFormatter.displaySuccessMessage(player, Translatable.SUCCESS_AUTO_DECRYPTED); + new FormatBuilder(Translatable.SUCCESS_AUTO_DECRYPTED).success(player); return true; } else { return adminDecryptLegacy(player, bookMetadata); @@ -101,11 +96,10 @@ public class CommandDecrypt implements TabExecutor { * @return

True if successfully decrypted

*/ private boolean adminDecryptLegacy(@NotNull Player player, @NotNull BookMeta bookMetadata) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); File encryptedDirectory = new File(BooksWithoutBorders.getConfiguration().getEncryptedBookPath()); String[] encryptedFiles = encryptedDirectory.list(); if (encryptedFiles == null) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_ENCRYPTED_DIRECTORY_EMPTY_OR_MISSING); + new FormatBuilder(Translatable.ERROR_ENCRYPTED_DIRECTORY_EMPTY_OR_MISSING).error(player); return false; } @@ -125,13 +119,13 @@ public class CommandDecrypt implements TabExecutor { ItemStack book = EncryptionHelper.loadEncryptedBookLegacy(player, key, false); if (book != null) { InventoryHelper.setHeldWrittenBook(player, book); - stringFormatter.displaySuccessMessage(player, Translatable.SUCCESS_AUTO_DECRYPTED); + new FormatBuilder(Translatable.SUCCESS_AUTO_DECRYPTED).success(player); return true; } else { return false; } } else { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_ENCRYPTED_BOOK_UNKNOWN); + new FormatBuilder(Translatable.ERROR_ENCRYPTED_BOOK_UNKNOWN).success(player); return false; } } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDelete.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDelete.java index 8c772ca..8fee2ec 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDelete.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDelete.java @@ -8,7 +8,7 @@ import net.knarcraft.bookswithoutborders.utility.BookFileHelper; import net.knarcraft.bookswithoutborders.utility.BookHelper; import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -28,7 +28,7 @@ public class CommandDelete implements TabExecutor { public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] arguments) { if (!(sender instanceof Player)) { - BooksWithoutBorders.getStringFormatter().displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY); + new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender); return false; } @@ -53,7 +53,7 @@ public class CommandDelete implements TabExecutor { //Delete the file List availableBooks = BooksWithoutBorders.getAvailableBooks(sender, deletePublic); if (availableBooks.isEmpty()) { - BooksWithoutBorders.getStringFormatter().displayErrorMessage(sender, Translatable.ERROR_DELETE_EMPTY); + new FormatBuilder(Translatable.ERROR_DELETE_EMPTY).error(sender); return false; } @@ -71,7 +71,6 @@ public class CommandDelete implements TabExecutor { * @param isPublic

Whether the book to delete is public or not

*/ public void performBookDeletion(@NotNull CommandSender sender, @NotNull String fileName, @NotNull Boolean isPublic) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); //If the file name is an index of the load list, load the book try { int loadListIndex = Integer.parseInt(fileName); @@ -89,20 +88,19 @@ public class CommandDelete implements TabExecutor { //Send message if no such file could be found if (file == null) { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_INCORRECT_FILE_NAME); + new FormatBuilder(Translatable.ERROR_INCORRECT_FILE_NAME).error(sender); return; } //Try to delete the file try { if (file.delete()) { - stringFormatter.displaySuccessMessage(sender, - stringFormatter.replacePlaceholder(Translatable.SUCCESS_DELETED, "{file}", fileName)); + new FormatBuilder(Translatable.SUCCESS_DELETED).replace("{file}", fileName).success(sender); } else { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_DELETE_FAILED_SILENT); + new FormatBuilder(Translatable.ERROR_DELETE_FAILED_SILENT).error(sender); } } catch (Exception exception) { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_DELETE_FAILED_EXCEPTION); + new FormatBuilder(Translatable.ERROR_DELETE_FAILED_EXCEPTION).error(sender); } } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDeletePage.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDeletePage.java index 3d63a62..f36b979 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDeletePage.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandDeletePage.java @@ -1,9 +1,8 @@ package net.knarcraft.bookswithoutborders.command; -import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.utility.InventoryHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -24,20 +23,19 @@ public class CommandDeletePage 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; } if (arguments.length == 0) { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_NO_BOOK_PAGE); + new FormatBuilder(Translatable.ERROR_NO_BOOK_PAGE).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; } @@ -45,19 +43,19 @@ public class CommandDeletePage 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; } 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 || index >= pages.size()) { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_OUT_OF_RANGE_BOOK_PAGE); + new FormatBuilder(Translatable.ERROR_OUT_OF_RANGE_BOOK_PAGE).error(sender); return false; } @@ -65,7 +63,7 @@ public class CommandDeletePage implements TabExecutor { bookMeta.setPages(pages); heldBook.setItemMeta(bookMeta); - stringFormatter.displaySuccessMessage(sender, Translatable.SUCCESS_PAGE_DELETED); + new FormatBuilder(Translatable.SUCCESS_PAGE_DELETED).success(sender); return true; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandEncrypt.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandEncrypt.java index d4b0dfe..b857c45 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandEncrypt.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandEncrypt.java @@ -8,7 +8,7 @@ import net.knarcraft.bookswithoutborders.encryption.EncryptionStyle; import net.knarcraft.bookswithoutborders.state.ItemSlot; import net.knarcraft.bookswithoutborders.utility.EncryptionHelper; import net.knarcraft.bookswithoutborders.utility.InventoryHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -30,9 +30,8 @@ public class CommandEncrypt implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] arguments) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); if (performPreChecks(sender, arguments, 1, 2, - stringFormatter.getUnFormattedColoredMessage(Translatable.ERROR_ENCRYPT_NO_KEY)) == null) { + new FormatBuilder(Translatable.ERROR_ENCRYPT_NO_KEY).build()) == null) { return false; } @@ -63,38 +62,35 @@ public class CommandEncrypt implements TabExecutor { @Nullable protected BookMeta performPreChecks(@NotNull CommandSender sender, @NotNull String[] arguments, int necessaryArguments, int optionalArguments, @NotNull String missingArgumentsError) { - 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 null; } if (InventoryHelper.notHoldingOneWrittenBookCheck(player, - stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_ENCRYPT)), - stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_ENCRYPT)))) { + new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK).replace("{action}", Translatable.ACTION_ENCRYPT).build(), + new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_ENCRYPT).build())) { return null; } int argumentCount = arguments.length; if (argumentCount < necessaryArguments) { - stringFormatter.displayErrorMessage(player, missingArgumentsError); + new FormatBuilder(missingArgumentsError).error(player); return null; } if (argumentCount > necessaryArguments + optionalArguments) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_TOO_MANY_ARGUMENTS_COMMAND); + new FormatBuilder(Translatable.ERROR_TOO_MANY_ARGUMENTS_COMMAND).error(player); return null; } ItemStack heldBook = InventoryHelper.getHeldBook(player, true); BookMeta bookMetadata = (BookMeta) heldBook.getItemMeta(); if (bookMetadata == null) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_METADATA_MISSING); + new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player); return null; } if (!bookMetadata.hasPages()) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_ENCRYPT_EMPTY); + new FormatBuilder(Translatable.ERROR_ENCRYPT_EMPTY).error(player); return null; } return bookMetadata; diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandFormat.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandFormat.java index a422c1a..e9aa3bd 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandFormat.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandFormat.java @@ -1,10 +1,9 @@ package net.knarcraft.bookswithoutborders.command; -import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.utility.BookFormatter; import net.knarcraft.bookswithoutborders.utility.InventoryHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -24,29 +23,27 @@ public class CommandFormat implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @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; } BookMeta meta = (BookMeta) heldBook.getItemMeta(); if (meta == null) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_METADATA_MISSING); + new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player); return false; } heldBook.setItemMeta(BookFormatter.formatPages(meta)); - stringFormatter.displaySuccessMessage(sender, Translatable.SUCCESS_FORMATTED); - + new FormatBuilder(Translatable.SUCCESS_FORMATTED).success(sender); return true; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandGive.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandGive.java index 6ebf9cd..fe25f73 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandGive.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandGive.java @@ -7,7 +7,7 @@ import net.knarcraft.bookswithoutborders.gui.PagedBookIndex; import net.knarcraft.bookswithoutborders.utility.BookLoader; import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.Bukkit; import org.bukkit.Server; @@ -33,7 +33,7 @@ public class CommandGive implements TabExecutor { public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] arguments) { if (!(sender instanceof Player)) { - BooksWithoutBorders.getStringFormatter().displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY); + new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender); return false; } @@ -56,9 +56,8 @@ public class CommandGive implements TabExecutor { return true; } - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); if (arguments.length == 1) { - stringFormatter.displayErrorMessage(sender, GiveMessage.ERROR_GIVE_NO_RECIPIENT); + new FormatBuilder(GiveMessage.ERROR_GIVE_NO_RECIPIENT).error(sender); return false; } @@ -132,7 +131,6 @@ public class CommandGive implements TabExecutor { */ private boolean parseArgumentsAndContinue(@NotNull String[] arguments, @NotNull CommandSender sender, @NotNull String directory, boolean givePublic) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); int argumentCount = arguments.length; //Organize and parse input String bookIdentifier; @@ -163,13 +161,13 @@ public class CommandGive implements TabExecutor { //Try and find the target player Player receivingPlayer = booksWithoutBorders.getServer().getPlayerExact(receivingPlayerName); if (receivingPlayer == null) { - stringFormatter.displayErrorMessage(sender, GiveMessage.ERROR_GIVE_RECIPIENT_UNKNOWN); + new FormatBuilder(GiveMessage.ERROR_GIVE_RECIPIENT_UNKNOWN).error(sender); return false; } //Make sure the receiver is able to fit the book if (receivingPlayer.getInventory().firstEmpty() == -1) { - stringFormatter.displayErrorMessage(sender, GiveMessage.ERROR_GIVE_RECIPIENT_FULL); + new FormatBuilder(GiveMessage.ERROR_GIVE_RECIPIENT_FULL).error(sender); return false; } @@ -192,17 +190,16 @@ public class CommandGive implements TabExecutor { private boolean loadAndGiveBook(@NotNull String bookIdentifier, @NotNull CommandSender sender, @NotNull Player receivingPlayer, boolean isSigned, @NotNull String folder, @NotNull String copies) throws NumberFormatException { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); String bookToLoad = InputCleaningHelper.cleanString(bookIdentifier); ItemStack newBook = BookLoader.loadBook(sender, bookToLoad, isSigned, folder, Integer.parseInt(copies)); if (newBook != null) { //NOTE: As this method bypasses cost, it should also bypass the generation change receivingPlayer.getInventory().addItem(newBook); - stringFormatter.displaySuccessMessage(sender, GiveMessage.SUCCESS_GIVE_SENT); - stringFormatter.displaySuccessMessage(receivingPlayer, GiveMessage.SUCCESS_GIVE_RECEIVED); + new FormatBuilder(GiveMessage.SUCCESS_GIVE_SENT).success(sender); + new FormatBuilder(GiveMessage.SUCCESS_GIVE_RECEIVED).success(receivingPlayer); return true; } else { - stringFormatter.displayErrorMessage(sender, GiveMessage.ERROR_GIVE_LOAD_FAILED); + new FormatBuilder(GiveMessage.ERROR_GIVE_LOAD_FAILED).error(sender); return false; } } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandGroupEncrypt.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandGroupEncrypt.java index 66c0288..7155a42 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandGroupEncrypt.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandGroupEncrypt.java @@ -1,9 +1,8 @@ package net.knarcraft.bookswithoutborders.command; -import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.encryption.EncryptionStyle; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -21,14 +20,13 @@ public class CommandGroupEncrypt extends CommandEncrypt implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @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; } BookMeta bookMetadata = performPreChecks(sender, arguments, 2, 1, - stringFormatter.getUnFormattedColoredMessage(Translatable.ERROR_GROUP_ENCRYPT_ARGUMENTS_MISSING)); + new FormatBuilder(Translatable.ERROR_GROUP_ENCRYPT_ARGUMENTS_MISSING).build()); if (bookMetadata == null) { return false; @@ -37,7 +35,7 @@ public class CommandGroupEncrypt extends CommandEncrypt implements TabExecutor { //Check if book is already group encrypted List lore = bookMetadata.getLore(); if (bookMetadata.hasLore() && lore != null && lore.get(0).contains(" encrypted]")) { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_GROUP_ENCRYPTED_ALREADY); + new FormatBuilder(Translatable.ERROR_GROUP_ENCRYPTED_ALREADY).error(sender); return false; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoad.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoad.java index 5a45548..f3fd6d8 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoad.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandLoad.java @@ -6,7 +6,7 @@ import net.knarcraft.bookswithoutborders.gui.PagedBookIndex; import net.knarcraft.bookswithoutborders.utility.BookLoader; import net.knarcraft.bookswithoutborders.utility.InputCleaningHelper; import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -41,14 +41,13 @@ public class CommandLoad implements TabExecutor { */ public boolean loadBook(@NotNull CommandSender sender, @NotNull String[] arguments, @NotNull String directory, boolean loadPublic, @NotNull String commandName) { - 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; } if (player.getInventory().firstEmpty() == -1) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_INVENTORY_FULL); + new FormatBuilder(Translatable.ERROR_INVENTORY_FULL).error(player); return false; } @@ -156,7 +155,6 @@ public class CommandLoad implements TabExecutor { */ private boolean loadBook(@NotNull Player player, boolean loadPublic, @NotNull String bookIdentifier, boolean isSigned, @NotNull String directory, int copies) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); BooksWithoutBorders.updateBooks(player, loadPublic); String bookToLoad = InputCleaningHelper.cleanString(bookIdentifier); @@ -165,10 +163,10 @@ public class CommandLoad implements TabExecutor { ItemStack newBook = BookLoader.loadBook(player, bookToLoad, isSigned, directory, copies); if (newBook != null) { player.getInventory().addItem(newBook); - stringFormatter.displaySuccessMessage(player, Translatable.SUCCESS_BOOK_LOADED); + new FormatBuilder(Translatable.SUCCESS_BOOK_LOADED).success(player); return true; } else { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_LOAD_FAILED); + new FormatBuilder(Translatable.ERROR_LOAD_FAILED).error(player); return false; } } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandMigrate.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandMigrate.java index ebfd269..d3d8c63 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandMigrate.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandMigrate.java @@ -5,7 +5,7 @@ import net.knarcraft.bookswithoutborders.config.StaticMessage; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.container.MigrationRequest; import net.knarcraft.bookswithoutborders.thread.MigrationQueueThread; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -27,13 +27,12 @@ public class CommandMigrate 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)) { - BooksWithoutBorders.getStringFormatter().displayErrorMessage(sender, Translatable.ERROR_PLAYER_ONLY); + new FormatBuilder(Translatable.ERROR_PLAYER_ONLY).error(sender); return false; } File bookDirectory = new File(BooksWithoutBorders.getConfiguration().getBookFolder()); - stringFormatter.displaySuccessMessage(player, Translatable.SUCCESS_MIGRATION_STARTED); + new FormatBuilder(Translatable.SUCCESS_MIGRATION_STARTED).neutral(player); Queue filesToMigrate = new LinkedList<>(); findFilesToMigrate(bookDirectory, filesToMigrate, player); BooksWithoutBorders.getMigrationQueue().addAll(filesToMigrate); @@ -62,8 +61,8 @@ public class CommandMigrate implements TabExecutor { private void findFilesToMigrate(@NotNull File folder, @NotNull Queue queue, @NotNull Player player) { File[] files = folder.listFiles(); if (files == null) { - BooksWithoutBorders.log(Level.WARNING, StringFormatter.replacePlaceholder( - StaticMessage.EXCEPTION_DIRECTORY_UNAVAILABLE.toString(), "{folder}", folder.getName())); + BooksWithoutBorders.log(Level.WARNING, new FormatBuilder(StaticMessage.EXCEPTION_DIRECTORY_UNAVAILABLE.toString()). + replace("{folder}", folder.getName()).build()); return; } for (File file : files) { diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandReload.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandReload.java index e586733..b63b102 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandReload.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandReload.java @@ -2,7 +2,7 @@ package net.knarcraft.bookswithoutborders.command; import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Translatable; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -19,15 +19,14 @@ public class CommandReload implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] arguments) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); // Reload books BooksWithoutBorders.clearBookData(); BooksWithoutBorders.updateBooks(sender, true); if (BooksWithoutBorders.getConfiguration().loadConfig()) { - stringFormatter.displaySuccessMessage(sender, Translatable.SUCCESS_RELOADED); + new FormatBuilder(Translatable.SUCCESS_RELOADED).success(sender); } else { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_RELOAD_FAILED); + new FormatBuilder(Translatable.ERROR_RELOAD_FAILED).error(sender); } return true; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSave.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSave.java index c3fc635..2f6bfc7 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSave.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSave.java @@ -12,7 +12,7 @@ import net.knarcraft.bookswithoutborders.utility.BookFileHelper; import net.knarcraft.bookswithoutborders.utility.BookHelper; import net.knarcraft.bookswithoutborders.utility.BookToFromTextHelper; import net.knarcraft.bookswithoutborders.utility.InventoryHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -49,9 +49,8 @@ public class CommandSave implements TabExecutor { */ protected boolean saveHeldBook(@NotNull CommandSender sender, @NotNull String[] arguments, boolean savePublic, @NotNull String command) { - 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; } @@ -61,7 +60,7 @@ public class CommandSave implements TabExecutor { saveBook(player, heldBook, duplicate, savePublic, command); return true; } else { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_NOT_HOLDING_ANY_BOOK); + new FormatBuilder(Translatable.ERROR_NOT_HOLDING_ANY_BOOK).error(sender); return false; } } @@ -77,10 +76,9 @@ public class CommandSave implements TabExecutor { */ public void saveBook(@NotNull Player player, @NotNull ItemStack heldBook, boolean overwrite, boolean saveToPublicFolder, @NotNull String command) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); BookMeta book = (BookMeta) heldBook.getItemMeta(); if (book == null) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_METADATA_MISSING); + new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player); return; } @@ -96,7 +94,7 @@ public class CommandSave implements TabExecutor { String savePath = BookHelper.getBookDirectoryPathString(saveToPublicFolder ? BookDirectory.PUBLIC : BookDirectory.PLAYER, player); if (savePath == null) { - stringFormatter.displayErrorMessage(player, SaveMessage.ERROR_SAVE_INVALID_PATH); + new FormatBuilder(SaveMessage.ERROR_SAVE_INVALID_PATH).error(player); return; } @@ -105,14 +103,14 @@ public class CommandSave implements TabExecutor { try { fileName = BookHelper.getBookFile(book, player, saveToPublicFolder); } catch (IllegalArgumentException exception) { - stringFormatter.displayErrorMessage(player, exception.getMessage()); + new FormatBuilder(exception.getMessage()).error(player); return; } //Make sure the used folders exist File file = new File(savePath); if (!file.exists() && !file.mkdir()) { - stringFormatter.displayErrorMessage(player, SaveMessage.ERROR_SAVE_FILE_SYSTEM_ERROR); + new FormatBuilder(SaveMessage.ERROR_SAVE_FILE_SYSTEM_ERROR).error(player); return; } @@ -128,8 +126,7 @@ public class CommandSave implements TabExecutor { //Update the relevant book list BooksWithoutBorders.updateBooks(player, saveToPublicFolder); - stringFormatter.displaySuccessMessage(player, - stringFormatter.replacePlaceholder(SaveMessage.SUCCESS_SAVED, "{fileName}", newName)); + new FormatBuilder(SaveMessage.SUCCESS_SAVED).replace("{fileName}", newName).success(player); } catch (IOException exception) { BooksWithoutBorders.log(Level.SEVERE, StaticMessage.EXCEPTION_SAVE_BOOK_FAILED.toString()); } @@ -161,10 +158,9 @@ public class CommandSave implements TabExecutor { private String checkDuplicates(@NotNull Player player, @NotNull File directory, @NotNull String fileName, @NotNull String command, @NotNull String separator, int duplicateLimit, boolean overwrite) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); File[] foundFiles = directory.listFiles(); if (foundFiles == null) { - stringFormatter.displayErrorMessage(player, SaveMessage.ERROR_SAVE_FILE_SYSTEM_ERROR); + new FormatBuilder(SaveMessage.ERROR_SAVE_FILE_SYSTEM_ERROR).error(player); return null; } @@ -178,23 +174,19 @@ public class CommandSave implements TabExecutor { String fullCommand = "/" + command + " true"; - boolean isUnnamed = fileName.contains(stringFormatter.getUnFormattedColoredMessage( - Formatting.NEUTRAL_UNKNOWN_TITLE) + separator); + boolean isUnnamed = fileName.contains(new FormatBuilder(Formatting.NEUTRAL_UNKNOWN_TITLE).build() + separator); // Skip duplicate unnamed book saving if (!isUnnamed && !overwrite) { - stringFormatter.displayErrorMessage(player, SaveMessage.ERROR_SAVE_DUPLICATE_NAMED); - stringFormatter.displayErrorMessage(player, stringFormatter.replacePlaceholder( - SaveMessage.ERROR_SAVE_OVERWRITE_REQUIRED, "{command}", fullCommand)); + new FormatBuilder(SaveMessage.ERROR_SAVE_DUPLICATE_NAMED).error(player); + new FormatBuilder(SaveMessage.ERROR_SAVE_OVERWRITE_REQUIRED).replace("{command}", fullCommand).error(player); return null; } // Skip if duplicate limit is reached if (foundDuplicates > duplicateLimit) { - stringFormatter.displayErrorMessage(player, stringFormatter.replacePlaceholder( - SaveMessage.ERROR_SAVE_DUPLICATE_UNNAMED, "{fileName}", fileName)); - stringFormatter.displayErrorMessage(player, stringFormatter.replacePlaceholder( - SaveMessage.ERROR_SAVE_OVERWRITE_REQUIRED, "{command}", fullCommand)); + new FormatBuilder(SaveMessage.ERROR_SAVE_DUPLICATE_UNNAMED).replace("{fileName}", fileName).error(player); + new FormatBuilder(SaveMessage.ERROR_SAVE_OVERWRITE_REQUIRED).replace("{command}", fullCommand).error(player); return null; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetAuthor.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetAuthor.java index d5f3cd1..a9a6f42 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetAuthor.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetAuthor.java @@ -1,10 +1,9 @@ package net.knarcraft.bookswithoutborders.command; -import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.state.ItemSlot; import net.knarcraft.bookswithoutborders.utility.InventoryHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.property.ColorConversion; import net.knarcraft.knarlib.util.ColorHelper; import org.bukkit.command.Command; @@ -27,22 +26,19 @@ public class CommandSetAuthor implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @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; } if (arguments.length < 1) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_AUTHOR_BLANK); + new FormatBuilder(Translatable.ERROR_AUTHOR_BLANK).error(player); return false; } if (InventoryHelper.notHoldingOneWrittenBookCheck(player, - stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_SET_AUTHOR)), - stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_SET_AUTHOR)))) { + new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK).replace("{action}", Translatable.ACTION_SET_AUTHOR).build(), + new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_SET_AUTHOR).build())) { return false; } @@ -51,15 +47,14 @@ public class CommandSetAuthor implements TabExecutor { ItemStack heldBook = InventoryHelper.getHeldItem(player, mainHand); BookMeta bookMetaData = InventoryHelper.getHeldBookMetadata(player, mainHand); if (bookMetaData == null) { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_METADATA_MISSING); + new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player); return false; } String author = ColorHelper.translateColorCodes(String.join(" ", arguments), ColorConversion.RGB); bookMetaData.setAuthor(author); heldBook.setItemMeta(bookMetaData); - stringFormatter.displaySuccessMessage(player, stringFormatter.replacePlaceholder(Translatable.SUCCESS_SET_AUTHOR, - "{author}", author)); + new FormatBuilder(Translatable.SUCCESS_SET_AUTHOR).replace("{author}", author).success(player); return true; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetBookPrice.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetBookPrice.java index 49be74c..d08264a 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetBookPrice.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetBookPrice.java @@ -9,7 +9,7 @@ import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.manager.EconomyManager; import net.knarcraft.bookswithoutborders.utility.InventoryHelper; import net.knarcraft.bookswithoutborders.utility.TabCompletionTypeHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.Material; import org.bukkit.command.Command; @@ -33,7 +33,6 @@ public class CommandSetBookPrice implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] arguments) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); //Clear the current price if (arguments.length == 0) { clearItemPrice(sender); @@ -42,7 +41,7 @@ public class CommandSetBookPrice implements TabExecutor { //Warn about missing arguments if (arguments.length < 2) { - stringFormatter.displayErrorMessage(sender, CostMessage.ERROR_COST_NOT_SPECIFIED); + new FormatBuilder(CostMessage.ERROR_COST_NOT_SPECIFIED).error(sender); return false; } @@ -50,11 +49,11 @@ public class CommandSetBookPrice implements TabExecutor { try { price = Double.parseDouble(arguments[1]); if (price <= 0) { - stringFormatter.displayErrorMessage(sender, CostMessage.ERROR_COST_INVALID_QUANTITY); + new FormatBuilder(CostMessage.ERROR_COST_INVALID_QUANTITY).error(sender); return false; } } catch (NumberFormatException exception) { - stringFormatter.displayErrorMessage(sender, CostMessage.ERROR_COST_INVALID_QUANTITY); + new FormatBuilder(CostMessage.ERROR_COST_INVALID_QUANTITY).error(sender); return false; } @@ -62,7 +61,7 @@ public class CommandSetBookPrice implements TabExecutor { case "item" -> setItemPrice(sender, price); case "economy" -> setEconomyPrice(sender, price); default -> { - stringFormatter.displayErrorMessage(sender, CostMessage.ERROR_COST_INVALID_TYPE); + new FormatBuilder(CostMessage.ERROR_COST_INVALID_TYPE).error(sender); yield false; } }; @@ -92,15 +91,14 @@ public class CommandSetBookPrice implements TabExecutor { * @return

True if the price was changed successfully

*/ private boolean setItemPrice(@NotNull CommandSender sender, double price) { - 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 heldItem = InventoryHelper.getHeldItem(player, true); if (heldItem.getType() == Material.AIR) { - stringFormatter.displayErrorMessage(sender, CostMessage.ERROR_COST_ITEM_MISSING); + new FormatBuilder(CostMessage.ERROR_COST_ITEM_MISSING).error(sender); return false; } @@ -113,9 +111,8 @@ public class CommandSetBookPrice implements TabExecutor { booksWithoutBorders.getConfig().set(ConfigOption.PRICE_QUANTITY.getConfigNode(), newPriceQuantity); booksWithoutBorders.saveConfig(); - stringFormatter.displaySuccessMessage(sender, stringFormatter.replacePlaceholders( - CostMessage.SUCCESS_COST_ITEM_SET, List.of("{quantity}", "{price}"), - List.of(String.valueOf((int) newPriceQuantity), newPriceType))); + new FormatBuilder(CostMessage.SUCCESS_COST_ITEM_SET).replace("{quantity}", + String.valueOf((int) newPriceQuantity)).replace("{price}", newPriceType).success(sender); return true; } @@ -127,7 +124,6 @@ public class CommandSetBookPrice implements TabExecutor { * @return

True if the price was changed successfully

*/ private boolean setEconomyPrice(@NotNull CommandSender sender, double price) { - StringFormatter stringFormatter = BooksWithoutBorders.getStringFormatter(); EconomyManager economyManager = BooksWithoutBorders.getConfiguration().getEconomyManager(); if (economyManager.getEconomy() != null) { BwBConfig config = BooksWithoutBorders.getConfiguration(); @@ -138,12 +134,11 @@ public class CommandSetBookPrice implements TabExecutor { booksWithoutBorders.getConfig().set(ConfigOption.PRICE_QUANTITY.getConfigNode(), newPriceQuantity); booksWithoutBorders.saveConfig(); - stringFormatter.displaySuccessMessage(sender, stringFormatter.replacePlaceholder( - CostMessage.SUCCESS_COST_ECONOMY_SET, "{cost}", economyManager.getEconomy().format(newPriceQuantity))); + new FormatBuilder(CostMessage.SUCCESS_COST_ECONOMY_SET).replace("{cost}", + economyManager.getEconomy().format(newPriceQuantity)).success(sender); return true; } else { - BooksWithoutBorders.getStringFormatter().displayErrorMessage(sender, - StaticMessage.EXCEPTION_VAULT_PRICE_NOT_CHANGED.toString()); + new FormatBuilder(StaticMessage.EXCEPTION_VAULT_PRICE_NOT_CHANGED.toString()).error(sender); return false; } } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetBookshelfData.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetBookshelfData.java index 40e6e4e..052bd9c 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetBookshelfData.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetBookshelfData.java @@ -5,7 +5,7 @@ import net.knarcraft.bookswithoutborders.config.translation.BookshelfMessage; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.container.Bookshelf; import net.knarcraft.bookswithoutborders.handler.BookshelfHandler; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.util.TabCompletionHelper; import org.bukkit.Material; import org.bukkit.block.Block; @@ -28,15 +28,14 @@ public class CommandSetBookshelfData 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; } Block targetBlock = player.getTargetBlockExact(7); if (targetBlock == null || targetBlock.getType() != Material.CHISELED_BOOKSHELF) { - stringFormatter.displayErrorMessage(sender, BookshelfMessage.ERROR_BOOKSHELF_NOT_FOUND); + new FormatBuilder(BookshelfMessage.ERROR_BOOKSHELF_NOT_FOUND).error(sender); return false; } @@ -48,9 +47,9 @@ public class CommandSetBookshelfData implements TabExecutor { if (bookshelf != null) { shelfHandler.unregisterBookshelf(bookshelf); shelfHandler.save(); - stringFormatter.displaySuccessMessage(sender, BookshelfMessage.SUCCESS_BOOKSHELF_DATA_DELETED); + new FormatBuilder(BookshelfMessage.SUCCESS_BOOKSHELF_DATA_DELETED).success(sender); } else { - stringFormatter.displayErrorMessage(sender, BookshelfMessage.ERROR_BOOKSHELF_NOT_REGISTERED); + new FormatBuilder(BookshelfMessage.ERROR_BOOKSHELF_NOT_REGISTERED).error(sender); } return true; } else { @@ -73,16 +72,16 @@ public class CommandSetBookshelfData implements TabExecutor { bookshelf.setTitle(builder.toString()); } shelfHandler.save(); - stringFormatter.displaySuccessMessage(sender, BookshelfMessage.SUCCESS_BOOKSHELF_TITLE_SET); + new FormatBuilder(BookshelfMessage.SUCCESS_BOOKSHELF_TITLE_SET).success(sender); return true; case "lore": if (bookshelf == null) { - stringFormatter.displayErrorMessage(sender, BookshelfMessage.ERROR_BOOKSHELF_NAME_REQUIRED); + new FormatBuilder(BookshelfMessage.ERROR_BOOKSHELF_NAME_REQUIRED).error(sender); } else { List loreParts = Arrays.asList(builder.toString().split(BooksWithoutBorders.getConfiguration().getLoreSeparator())); bookshelf.setLore(loreParts); shelfHandler.save(); - stringFormatter.displaySuccessMessage(sender, BookshelfMessage.SUCCESS_BOOKSHELF_LORE_SET); + new FormatBuilder(BookshelfMessage.SUCCESS_BOOKSHELF_LORE_SET).success(sender); } return true; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetGeneration.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetGeneration.java index 6255562..b49ea2e 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetGeneration.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetGeneration.java @@ -1,9 +1,8 @@ package net.knarcraft.bookswithoutborders.command; -import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.utility.InventoryHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabExecutor; @@ -24,22 +23,19 @@ public class CommandSetGeneration implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @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; } if (InventoryHelper.notHoldingOneWrittenBookCheck(player, - stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_CHANGE_GENERATION)), - stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_CHANGE_GENERATION)))) { + new FormatBuilder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK).replace("{action}", Translatable.ACTION_CHANGE_GENERATION).build(), + new FormatBuilder(Translatable.ERROR_ONLY_ONE_BOOK).replace("{action}", Translatable.ACTION_CHANGE_GENERATION).build())) { return false; } if (arguments.length < 1) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_GENERATION_NOT_SPECIFIED); + new FormatBuilder(Translatable.ERROR_GENERATION_NOT_SPECIFIED).error(player); return false; } @@ -47,7 +43,7 @@ public class CommandSetGeneration implements TabExecutor { try { generation = BookMeta.Generation.valueOf(arguments[0]); } catch (IllegalArgumentException exception) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_GENERATION_INVALID); + new FormatBuilder(Translatable.ERROR_GENERATION_INVALID).error(player); return false; } @@ -56,10 +52,10 @@ public class CommandSetGeneration implements TabExecutor { if (bookMeta != null) { bookMeta.setGeneration(generation); heldBook.setItemMeta(bookMeta); - stringFormatter.displayErrorMessage(player, Translatable.SUCCESS_GENERATION_CHANGED); + new FormatBuilder(Translatable.SUCCESS_GENERATION_CHANGED).success(player); return true; } else { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_METADATA_MISSING); + new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player); return false; } } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetLore.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetLore.java index af85088..a4cd30a 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetLore.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetLore.java @@ -3,7 +3,7 @@ package net.knarcraft.bookswithoutborders.command; import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.utility.InventoryHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.property.ColorConversion; import net.knarcraft.knarlib.util.ColorHelper; import org.bukkit.Material; @@ -27,20 +27,19 @@ public class CommandSetLore implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @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; } if (arguments.length < 1) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_LORE_EMPTY); + new FormatBuilder(Translatable.ERROR_LORE_EMPTY).error(player); return false; } ItemStack heldItem = InventoryHelper.getHeldItem(player, true); if (heldItem.getType() == Material.AIR) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_NO_ITEM); + new FormatBuilder(Translatable.ERROR_NO_ITEM).error(player); return false; } @@ -54,12 +53,12 @@ public class CommandSetLore implements TabExecutor { //Update lore ItemMeta meta = heldItem.getItemMeta(); if (meta == null) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_METADATA_MISSING); + new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player); return false; } meta.setLore(newLore); heldItem.setItemMeta(meta); - stringFormatter.displaySuccessMessage(player, Translatable.SUCCESS_LORE_SET); + new FormatBuilder(Translatable.SUCCESS_LORE_SET).success(player); return true; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetTitle.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetTitle.java index 96ea871..e978d99 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetTitle.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandSetTitle.java @@ -1,9 +1,8 @@ package net.knarcraft.bookswithoutborders.command; -import net.knarcraft.bookswithoutborders.BooksWithoutBorders; import net.knarcraft.bookswithoutborders.config.translation.Translatable; import net.knarcraft.bookswithoutborders.utility.InventoryHelper; -import net.knarcraft.knarlib.formatting.StringFormatter; +import net.knarcraft.knarlib.formatting.FormatBuilder; import net.knarcraft.knarlib.property.ColorConversion; import net.knarcraft.knarlib.util.ColorHelper; import org.bukkit.Material; @@ -27,20 +26,19 @@ public class CommandSetTitle implements TabExecutor { @Override public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @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; } if (arguments.length < 1) { - stringFormatter.displayErrorMessage(player, Translatable.ERROR_TITLE_EMPTY); + new FormatBuilder(Translatable.ERROR_TITLE_EMPTY).error(player); return false; } ItemStack heldItem = InventoryHelper.getHeldItem(player, true); if (heldItem.getType() == Material.AIR) { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_NO_ITEM); + new FormatBuilder(Translatable.ERROR_NO_ITEM).error(player); return false; } @@ -49,7 +47,7 @@ public class CommandSetTitle implements TabExecutor { ItemMeta itemMetadata = heldItem.getItemMeta(); if (itemMetadata == null) { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_METADATA_MISSING); + new FormatBuilder(Translatable.ERROR_METADATA_MISSING).error(player); return false; } @@ -57,7 +55,7 @@ public class CommandSetTitle implements TabExecutor { ItemMeta newMetaData; if (heldItem.getType() == Material.WRITTEN_BOOK) { if (title.length() > 32) { - stringFormatter.displayErrorMessage(sender, Translatable.ERROR_TITLE_LENGTH); + new FormatBuilder(Translatable.ERROR_TITLE_LENGTH).error(player); return false; } BookMeta bookMetadata = (BookMeta) itemMetadata; @@ -70,8 +68,7 @@ public class CommandSetTitle implements TabExecutor { //Set the new metadata heldItem.setItemMeta(newMetaData); - stringFormatter.displaySuccessMessage(sender, - stringFormatter.replacePlaceholder(Translatable.SUCCESS_TITLE_SET, "{title}", title)); + new FormatBuilder(Translatable.SUCCESS_TITLE_SET).replace("{title}", title).success(player); return true; } diff --git a/src/main/java/net/knarcraft/bookswithoutborders/config/translation/Formatting.java b/src/main/java/net/knarcraft/bookswithoutborders/config/translation/Formatting.java index 98a1ac3..d709cca 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/config/translation/Formatting.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/config/translation/Formatting.java @@ -28,6 +28,16 @@ public enum Formatting implements TranslatableMessage { */ NEUTRAL_COMMANDS_COMMAND, + /** + * The format used for explaining command summary elements + */ + NEUTRAL_COMMANDS_SUMMARY, + + /** + * The format used for explaining command description elements + */ + NEUTRAL_COMMANDS_DESCRIPTION, + /** * The string used when displaying that a command requires no permission */ diff --git a/src/main/resources/strings.yml b/src/main/resources/strings.yml index 2249a93..c7e5745 100644 --- a/src/main/resources/strings.yml +++ b/src/main/resources/strings.yml @@ -130,6 +130,8 @@ en: NEUTRAL_COMMANDS_BOOK_PRICE_ECO: "\n&c[{price} is required to create a book]" NEUTRAL_COMMANDS_BOOK_PRICE_ITEM: "&c[{quantity} {type} (s) are required to create a book]\n" NEUTRAL_COMMANDS_COMMAND: "\n&e{usage}{aliases}: &a{description}" + NEUTRAL_COMMANDS_SUMMARY: "\n&eCommand: &aUsage summary" + NEUTRAL_COMMANDS_DESCRIPTION: "\n&eCommand and arguments &f(&bAlias list&f): &aFull description &7{Required permission}" NEUTRAL_COMMANDS_COMMAND_NO_PERMISSION_REQUIRED: "None" NEUTRAL_COMMANDS_COMMAND_PERMISSION: " &7{{permission}}" NEUTRAL_COMMANDS_ALIASES: " &f(&b{aliases}&f)"