diff --git a/README.md b/README.md index 7f43079..82ddff3 100644 --- a/README.md +++ b/README.md @@ -49,6 +49,14 @@ Books without Borders has got your back! - Note that if real encryption is enabled, migrating the books will store them unencrypted (like they used to before real encryption was implemented) afterward. +### Book formatting + +- Formatting codes are automatically turned back into `&` codes after un-signing a book. +- `/formatbook` can be used on an unsigned book to preview formatting, but note that RGB colors will show up as + incorrect colors. That's just how that works. You must sign the book to see the real result. +- `/formatbook` can be used on a signed book (if `Format_Book_After_Signing` is disabled) in order to make any color or + formatting codes in the book display as intended. + ### Commands: An in-game description of available commands is available through the /bwb command. diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandFormat.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandFormat.java index 1a95740..b44cf6b 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandFormat.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandFormat.java @@ -30,15 +30,12 @@ public class CommandFormat implements TabExecutor { return false; } - if (InventoryHelper.notHoldingOneWrittenBookCheck(player, - stringFormatter.replacePlaceholder(Translatable.ERROR_NOT_HOLDING_WRITTEN_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_FORMAT)), - stringFormatter.replacePlaceholder(Translatable.ERROR_ONLY_ONE_BOOK, "{action}", - stringFormatter.getUnFormattedColoredMessage(Translatable.ACTION_FORMAT)))) { + ItemStack heldBook = InventoryHelper.getHeldBook(player); + if (heldBook == null) { + stringFormatter.displayErrorMessage(sender, Translatable.ERROR_NOT_HOLDING_ANY_BOOK); return false; } - - ItemStack heldBook = InventoryHelper.getHeldBook(player, true); + BookMeta meta = (BookMeta) heldBook.getItemMeta(); if (meta == null) { diff --git a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandUnSign.java b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandUnSign.java index 6c97c67..4223310 100644 --- a/src/main/java/net/knarcraft/bookswithoutborders/command/CommandUnSign.java +++ b/src/main/java/net/knarcraft/bookswithoutborders/command/CommandUnSign.java @@ -68,6 +68,8 @@ public class CommandUnSign implements TabExecutor { if (book == null) { return; } + + reverseColorCodes(book); InventoryHelper.replaceHeldItem(player, book, mainHand); } @@ -78,4 +80,25 @@ public class CommandUnSign implements TabExecutor { return new ArrayList<>(); } + /** + * Reverses colors of a previously formatted book + * + * @param book
The book to reverse colors of
+ */ + private void reverseColorCodes(@NotNull ItemStack book) { + try { + BookMeta meta = (BookMeta) book.getItemMeta(); + if (meta != null) { + List