Books without Borders Updated icon

Books without Borders Updated -----

Easy book management




If you are on a pre-1.4.0 version, please read the update notes before upgrading.

Changes:
  • Splits setLore and setTitle permissions into one for signed books and one for other items. The bookswithoutborders.alterbooks permission now only includes the permissions required for setting titles and lore of signed books. This means that as long as the authorRestricted.modify and authorRestricted.unsign configuration options are set to true, bookswithoutborders.alterbooks can now be given to players so they can do all kinds of stuff to their own books, without letting players add names and lore freely to any item. The new permission nodes are:
Code (Text):
bookswithoutborders.settitle.*      - Set the title of any item
bookswithoutborders.settitle.books  - Set the title of signed books only
bookswithoutborders.settitle.items  - Set the title of non-books only

bookswithoutborders.setlore.*     - Set the lore of any item
bookswithoutborders.setlore.books - Set the lore of signed books only
bookswithoutborders.setlore.items - Set the lore of non-books only
  • Fixes tab-completions for the bwb command not being filtered based on commands available to the player.
  • Sorts the commands listed when using the /bwb command with no arguments.
  • Shows an error when /bwb <command> is used with a valid command the player is missing the correct permission for.
----------, Jun 17, 2026

If you are on a pre-1.4.0 version, please read the update notes before upgrading.

Changes:
  • Adds the possibility to select a range of pages when using the /deletebookpage command.
  • Adds a new option to limit usage of the /bwbTitlePage, /bwbDeletePage, /bwbAuthor, /bwbTitle and /bwbLore commands to a book's author, which is enabled by default. This change is mostly to allow these rather powerful commands to be used by normal players without so much risk of abuse. Note that old books (pre-1.4.0) don't have a persistent author id, so changing the author name can make player lose ownership of the book.
----------, Jun 16, 2026

Warning: Back up your plugins\BooksWithoutBorders folder before migrating your books. Otherwise, you cannot downgrade if that becomes necessary for whatever reason.

On that note, this is your chance to change the title-author separator without having to manually rename the files. Just change it to a rarely used character, like '¤', run the /migrateBooks command and the migration process will rename all files for you. All books stored as .yml files will also be renamed to the exact book title, including spaces.

While commands are described when running the /bwb <commandName> command, and the configuration file now has much better comments, you can also refer to the readme.

After publishing the snapshot release, I added it to my own server and went through mostly every command, and functionality. Note however that I have no existing encrypted books, so encrypted book backwards compatibility is poorly tested. I was unable to discover any bugs other the ones I've fixed:

Fixes since 1.4.0-SNAPSHOT:
  • Fixes a severe bug where changing book price to item price through `/bwbConfig` would cause the plugin configuration to become invalid and prevent the plugin from being enabled.
  • Fixes incorrect separator provided in tab-completion for the /bwbLore command and the /bwbShelfData commands.
  • Fixes setting bookshelf name to a new bookshelf only including the first word in the name.
  • Checks whether a player can place blocks in a location before allowing it to set bookshelf data.
  • Makes it possible to clear just the lore with /bwbShelfData
  • Fixes the first join message including the word `firstJoinMessage` when changing it through `/bwbConfig`

1.4.0-SNAPSHOT Summary:

After 99 commits, 9626 additions and 4092 deletions, and almost a year has passed since the last update, it's hard to really keep track of all the changes, but I think the following overview covers most of them:

New commands:
  • /addbooktitlepage - Used to add a blank page, chapter page or front page to a book.
  • /createbwbsign - Used to create one of the available special signs supported by Books without Borders. This uses some trickery to use the full book path on the sign, preventing problems encountered when using a book id.
  • /deletebookpage - Used to delete a specific page from a book.
  • /editbwbconfig - Used to edit configuration values without having to edit config.yml directly.
  • /migratebooks - Used to migrate books to the new structure that allows spaces in filenames. Also useful to change the title-author separator.
  • /searchbooks - A useful command when looking for a specific book while only knowing the author or a specific property of the title.
  • /searchpublicbooks - Same as /searchbooks for publicly saved books.
Removed commands:
  • /setbookprice - Removed in favor of the new /editbwbconfig command.
Changed commands:
  • setLore and setTitle can be used with no arguments to remove lore or display name.
  • setTitle has a new toggle for setting display a name for a signed book.
  • bwb now shows a shorter summary of each command, but takes command name as argument for more detailed info.
  • All commands now have an alias starting with bwb, which is useful to see all available commands.
New configuration options:
  • authorRestricted.encrypt - Whether to limit book encryption to a book's owner
  • functionality.saveOnlyOriginal - Whether to only allow saving a book if it's the original copy of that book.
  • encryption.allowAdminBypass - Whether to allow admins to be able to decrypt books without having the right group permission or without having the decryption password.
  • encryption.useRealEncryption - Whether to use real AES encryption instead of the old method of scrambling the book while storing the unscrambled book contents to a file.
  • encryption.allowAdminBypassBlocking - Whether to allow players to mark a book as non-admin-decryptable. Can be used toghether with useRealEncryption (or by manually selecting AES encryption) to make encrypted books unrecoverable without the correct password.
Removed configuration options:
  • Save_Books_in_Yaml_Format - All books are now saved as yml files. Txt files can still be loaded.
New permissions:
  • bookswithoutborders.addtitlepage - Allows usage of the /addbooktitlepage command
  • bookswithoutborders.deletepage - Allows usage of the /deletebookpage command
  • bookswithoutborders.preventadmindecryption - Allows player to toggle the prevention of admin decryption if the option encryption.allowAdminBypassBlocking is enabled.
  • bookswithoutborders.searchbooks - Allows player to search through their saved books.
  • bookswithoutborders.searchpublicbooks - Allows player to search through the publicly saved collection of books.
Encryption changes:
  • Encrypted books now have a new AES encryption choice for the algorithm.
  • Adds an option for using real AES encryption instead of the current fake encryption of books. Admin encryption is still possible, as the key is stored in the encrypted book file, but this option may potentially cause a book's contents to be lost.
  • Adds an option to allow players to disable admin encryption when encrypting a book. If enabled, and a book is encrypted with admin decryption disabled, the ONLY WAY to get the book's contents back is to provide the correct password. It is likely that the password will be in the server logs, and an encryption sign does contain the password if looked at correctly, but this is nevertheless considered a highly dangerous option. Make sure players understand the consequences before enabling this option, giving them permissions and instructing them on its use. Only admins have the required permission by default.
  • Stores encrypted books using a persistent UUID to prevent name collisions for encrypted books.
  • Prevents saving of encrypted books.
  • Tracks number of known encrypted books to know when it's safe to delete the encrypted version of a book.
  • Allows overwriting group encrypted books.
Other changes:
  • Color tags in book names are properly sanitized.
  • Book names can contain spaces without compromises, which means both "-" and "_" are valid in book names. It is recommended to run /migratebooks to take advantage of this change.
  • The configuration file has finally been updated to new camelCase names, with improved comments. The migration is automatic on first run after upgrading.
  • The book list (shown when using the load/give commands without any arguments) has been further refined.
  • Unsigned books can now be formatted, for better whitespace management, and unsigning a book will now automatically revert formatting codes.
  • Display name renamed books will now retain their display name when loading the book.
  • An error is now shown if attempting to rename a book, while giving a name that's too long.
  • Bookshelf peeking is now enabled by default for new installations.
  • Messages displayed in the plugin are now configurable, including most formatting. Obtain a copy of strings.yml from the resources folder in the repository, or by opening the BwB .jar file with 7-zip, and put it in BwB's plugin folder. Editing it should display your changes in-game after reloading.
  • Rewrites and/or refactors a lot of code.
  • Adds persistent data for storing books' encrypted status, real author and other related data. This means that for books signed after this update, author restrictions will work even if the visible author of the book is changed.
  • Disallows loading a book as unsigned unless the player has the unsign permission, and passes the author check if necessary.
  • Improves book generation limitations by always changing the generation, even on give/load, when enabled.
Bugfixes:
  • Fixes a potential exception when importing a txt file as a book.
  • Fixes loading of unsigned books.
  • Rewriting a lot of code has apparently fixed a bug where BooksWithoutBorders prevented a signed to be placed on another sign.
  • Fixes an exception during loading when no books have been saved.
----------, Jun 16, 2026

Warning: Back up your plugins\BooksWithoutBorders folder before updating. Otherwise, you cannot downgrade, and any unknown bugs might cause permanent damage to your saved books.

This is a pre-release, as it has a lot of changes, and hasn't really been tested as a whole, even though each individual change was tested separately at some point. Please report any encountered bugs in the discord server, or create a new issue.


Also note that this is your chance to change the title-author separator without having to manually rename the files. Just change it to a rarely used character, like '¤', run the /migrateBooks command and the migration process will rename all files for you.

While commands are described when running the /bwb <commandName> command, and the configuration file now has much better comments, you can also refer to the dev branch's readme for this release.

This update took way too long, but I kept finding things I wanted to improve that took ages to find a a satisfying optimal solution for. In addition, I didn't really want to release it untested, but the ones planning to test the plugin last year were never able to.

After 99 commits, 9626 additions and 4092 deletions, and almost a year has passed since the last update, it's hard to really keep track of all the changes, but I think the following overview covers most of them:

New commands:
  • /addbooktitlepage - Used to add a blank page, chapter page or front page to a book.
  • /createbwbsign - Used to create one of the available special signs supported by Books without Borders. This uses some trickery to use the full book path on the sign, preventing problems encountered when using a book id.
  • /deletebookpage - Used to delete a specific page from a book.
  • /editbwbconfig - Used to edit configuration values without having to edit config.yml directly.
  • /migratebooks - Used to migrate books to the new structure that allows spaces in filenames. Also useful to change the title-author separator.
  • /searchbooks - A useful command when looking for a specific book while only knowing the author or a specific property of the title.
  • /searchpublicbooks - Same as /searchbooks for publicly saved books.
Removed commands:
  • /setbookprice - Removed in favor of the new /editbwbconfig command.
Changed commands:
  • setLore and setTitle can be used with no arguments to remove lore or display name.
  • setTitle has a new toggle for setting display a name for a signed book.
  • bwb now shows a shorter summary of each command, but takes command name as argument for more detailed info.
  • All commands now have an alias starting with bwb, which is useful to see all available commands.
New configuration options:
  • authorRestricted.encrypt - Whether to limit book encryption to a book's owner
  • functionality.saveOnlyOriginal - Whether to only allow saving a book if it's the original copy of that book.
  • encryption.allowAdminBypass - Whether to allow admins to be able to decrypt books without having the right group permission or without having the decryption password.
  • encryption.useRealEncryption - Whether to use real AES encryption instead of the old method of scrambling the book while storing the unscrambled book contents to a file.
  • encryption.allowAdminBypassBlocking - Whether to allow players to mark a book as non-admin-decryptable. Can be used toghether with useRealEncryption (or by manually selecting AES encryption) to make encrypted books unrecoverable without the correct password.
Removed configuration options:
  • Save_Books_in_Yaml_Format - All books are now saved as yml files. Txt files can still be loaded.
New permissions:
  • bookswithoutborders.addtitlepage - Allows usage of the /addbooktitlepage command
  • bookswithoutborders.deletepage - Allows usage of the /deletebookpage command
  • bookswithoutborders.preventadmindecryption - Allows player to toggle the prevention of admin decryption if the option encryption.allowAdminBypassBlocking is enabled.
  • bookswithoutborders.searchbooks - Allows player to search through their saved books.
  • bookswithoutborders.searchpublicbooks - Allows player to search through the publicly saved collection of books.
Encryption changes:
  • Encrypted books now have a new AES encryption choice for the algorithm.
  • Adds an option for using real AES encryption instead of the current fake encryption of books. Admin encryption is still possible, as the key is stored in the encrypted book file, but this option may potentially cause a book's contents to be lost.
  • Adds an option to allow players to disable admin encryption when encrypting a book. If enabled, and a book is encrypted with admin decryption disabled, the ONLY WAY to get the book's contents back is to provide the correct password. It is likely that the password will be in the server logs, and an encryption sign does contain the password if looked at correctly, but this is nevertheless considered a highly dangerous option. Make sure players understand the consequences before enabling this option, giving them permissions and instructing them on its use. Only admins have the required permission by default.
  • Stores encrypted books using a persistent UUID to prevent name collisions for encrypted books.
  • Prevents saving of encrypted books.
  • Tracks number of known encrypted books to know when it's safe to delete the encrypted version of a book.
  • Allows overwriting group encrypted books.
Other changes:
  • Color tags in book names are properly sanitized.
  • Book names can contain spaces without compromises, which means both "-" and "_" are valid in book names. It is recommended to run /migratebooks to take advantage of this change.
  • The configuration file has finally been updated to new camelCase names, with improved comments. The migration is automatic on first run after upgrading.
  • The book list (shown when using the load/give commands without any arguments) has been further refined.
  • Unsigned books can now be formatted, for better whitespace management, and unsigning a book will now automatically revert formatting codes.
  • Display name renamed books will now retain their display name when loading the book.
  • An error is now shown if attempting to rename a book, while giving a name that's too long.
  • Bookshelf peeking is now enabled by default for new installations.
  • Messages displayed in the plugin are now configurable, including most formatting. Obtain a copy of strings.yml from the resources folder in the repository, or by opening the BwB .jar file with 7-zip, and put it in BwB's plugin folder. Editing it should display your changes in-game after reloading.
  • Rewrites and/or refactors a lot of code.
  • Adds persistent data for storing books' encrypted status, real author and other related data. This means that for books signed after this update, author restrictions will work even if the visible author of the book is changed.
  • Disallows loading a book as unsigned unless the player has the unsign permission, and passes the author check if necessary.
  • Improves book generation limitations by always changing the generation, even on give/load, when enabled.
Bugfixes:
  • Fixes a potential exception when importing a txt file as a book.
  • Fixes loading of unsigned books.
  • Rewriting a lot of code has apparently fixed a bug where BooksWithoutBorders prevented a signed to be placed on another sign.
  • Fixes an exception during loading when no books have been saved.
----------, Jun 15, 2026

Changes:

  • Replaces the book list (when typing a load/delete/give) command with a paged list utilizing the Component API with clickable next/previous buttons, filtering by author, and going to pages with the first intance of each letter in the alphabet.
  • Adds a better strucured and more colorful book peek interface.
  • Adds a new command: /setbookshelfdata, which can be used to set name and lore for a bookshelf, which is displayed when peeking at that bookshelf's contents.
  • Prevents the § character from being used in filenames, when books with names containing color codes are saved.
  • Prevents the saving of books whose title contains the title author separator, as it creates trouble when displaying the book list.
  • Books are now reloaded as part of the /bookswithoutborders:reload command.
----------, Aug 4, 2025

This fixes an issue in 1.3.6 that caused an exception when peeking at a bookshelf containing enchanted books.
----------, Jul 28, 2025

This tiny update adds two improvements:

  • Fixes /loadpublicbook listing each book twice
  • Adds ability to use color codes when using /setbookauthor
----------, Jul 27, 2025

This release fixes a bug in 1.21 that caused contents of a book to disappear when unsigning the book with /unsignbook.
----------, Sep 7, 2024

This update for 1.20+ adds an optional feature which displays the books in a chiseled bookshelf if the player is sneaking and left-clicking a chiseled bookshelf (Works for signed books, book and quill, enchanted books and plain books). As this feature relies on chiseled bookshelves, this version is not compatible with pre-1.20 versions of Minecraft. Use 1.3.3 instead until you update.

The feature requires the bookswithoutborders.peekbookshelf permission, which is included in
bookswithoutborders.use.

Sign code has also been updated to only consider the front of a sign.
----------, Jun 24, 2023

This update fixes a problem where a player name in a book's author wasn't converted to an UUID when loading the file. This should be working now.

Additionally, both the real file names, and the ones with UUIDs converted to player names are displayed in the tab-completions, just in case.
----------, Nov 8, 2022

This update adds RGB support to /setlore and /settitle, so you can use hex colors like: "#caffcfEpic Item".
----------, Nov 5, 2022

This update adds a new /clearbook command which removes all text, author, generation and title from a writable (unsigned) book. Use it if you want to start again, and don't want to manually erase each character.

If you use writable (un-signed) books as payment method, books containing text will now be ignored. You no longer need to worry about your work in progress book being lost when payment is taken.

A bug where un-signing a stack of signed books would return one un-signed book has been fixed.
----------, Nov 4, 2022

This update adds several features and improvements:

Book folders now use player UUID instead of player name. Existing folders will be renamed once the owner logs in.
Books saved in a player folder will be stored with the player's UUID as the author.
The two UUID changes allow a player to keep their books and book ownership even if their name is changed.

Book generation (Original, Copy of Original, Copy of Copy, Tattered) is now saved along with the book.

This update fixes an inconsistency with the internal usage of the title author separator. Any problems caused by changing it should be gone.

New options:

  • Author_Only_Unsign: Only allows a book's author to unsign the book
  • Author_Only_Save: Only allows the owner of a book to save it to their personal collection
  • Change_Generation_On_Copy: Mimicks the vanilla behavior when it comes to book copying. A copy of the original will result in a "Copy of Original" book. This basically ensures there can only ever be one original book. A tattered, or copy of copy book cannot be copied.

New commands:
  • /setbookgeneration - Sets the generation (Original/Tattered/Copy of original/Copy of Copy) of the held book

New permissions:
  • bookswithoutborders.reload - Allows player to reload the plugin (this is already included in bookswithoutborders.admin)
  • bookswithoutborders.bypassauthoronlyunsign - Allows player to ignore Author_Only_Unsign config setting
  • bookswithoutborders.bypassauthoronlysave - Allows player to ignore Author_Only_Save config setting
  • bookswithoutborders.setgeneration - Allows player to change the generation of a book with /setbookgeneration (Original, Copy, Copy of Copy)
----------, Aug 11, 2022

This update fixes an exception thrown when trying to do book-related commands without holding a book (I don't know how I haven't found it sooner).

Additionally, the plugin is now built against the 1.19.1 Spigot version.
----------, Aug 5, 2022

This update adds filtering to the tab completion values, making it easier to find books or command options. For books, the filtering will return any values that contain the typed text. For other options, the filtering will return any values that start with the typed text.

In addition, the console will now display a notice if an update for Books without Borders is available.
----------, Feb 19, 2022

This update fixes a NullPointerException triggered when the list of books is displayed and no saved books exist.
----------, Jan 17, 2022

The main feature of this update is a config option to automatically format a book when it's signed. It does the same as the /format command, just automatically and for all players.

Additional changes:
* The config file is now commented
* Adds missing command info about the /formatbook command
* Adds information about the permission required to execute a command if /bwb is executed by an admin
* Improves the code a bit
----------, Jan 17, 2022

This update uses the 1.18.1 spigot .jar and Java 17 for building. Additionally, a new /formatbook command can be used on a written (signed) book to translate color/formatting codes such as &a,&e, #22ccee and &r to the actual color/formatting.

A formatted, unsigned book may look weird, such as some colors being wrong, but formatting it again after signing it should fix it.
----------, Jan 16, 2022

Resource Information
Author:
----------
Total Downloads: 667
First Release: Sep 9, 2021
Last Update: Jun 17, 2026
Category: ---------------
All-Time Rating:
3 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings