KonseptBooks
Allows you to store signed books in a file ("the library"), and then have users check out those books into their inventory.
You can then edit the book and update the library, and that change will then propagate to any books users already have checked out.
Commands
There is just one command, /konseptbooks
If available, it will use the aliases "book", "books" and "kb"
If you just say /books it won't know what you mean, but you can add a book name to that.
For example, /books Newbie Book
If there is a book called "Newbie Book", the user will get it.
In addition to getting books, there are some other actions available.
To differentiate between book titles and actions, the actions start with a hyphen, -
- -add : Add the book you're holding to the library.
- -author : Set author of the signed book you're holding.
- -delete : Delete the book in your hand from the library.
- -help : See a fantastic help text!
- -library : Open an inventory that contains all the books.
- -list : List the books you can get.
- -prepend : Prepend a page to the book you're holding.
- -reload : Reload the settings and library.
- -save : Save the library to disk.
- -title : Change the title of the signed book you're holding.
- -update : Update the library with the book you're holding.
- -unsigned : Get an unsigned copy of a book.
Actions in detail
-add
Only works in-game, and you have to be holding a signed book when you do it.
It saves it with the title and author it has at the time, so make sure those are what you want.
-author
Change the author of the book you're holding.
Only works if the book is singed, of course. Very useful if you want the Rules book to be signed by Server Admin, for example.
Does not update the book in the library, just the one in your hand. See -update.
-delete
Delete a book from the library.
Sometimes books go obsolete, and sometimes you add a book with a misspelled title. Just hold the signed book in your hand and /books delete
Gone!
It uses the book in your hand to try and protect against accidental deletions, because if you accidentally delete the wrong book you can add it again from the one in your hand.
Note, however, that from the console, where you can't hold a book in your hand, it is possible to supply a book title to delete.
-help
Gives you a list of actions. It doesn't just rattle off all the possible actions, it actually checks if you have permission to do that action.
Very similar to the list above, but also mentions how to get books and that they're automatically updated.
-library (New in 1.0-BETA)
This will open an inventory containing all the books in signed form so that you can freely pick and choose between them.
Note that if there are more than 54 books it would render wrongly, so only the alphabetically first 54 are shown.
-list
Gives you a list of book titles.
Very useful for knowing what to put behind /konseptbooks when not doing an action.
There is currently no way to have books that are not listed.
-prepend
If you're holding an unsigned book, this will add a page to the beginning of it, pushing all the rest of the pages one page back.
Very useful for something like server news, or other things where you want new additions on the first page.
Does not update the book in the library, just the one in your hand. See -update.
-reload
Makes KonseptBooks reload it's configuration, and the book library.
It is not recommended that you hand-edit the at any time, so please don't use it for that.
-save (New in 1.0-BETA)
Writes the current library to disk. This is normally done automatically when a book is saved or updated, but if you have autosave turned off you will need to do this manually when you're done updating books.
-title
Change the title of the book you're holding.
Only works if the book is singed, of course. Very useful if you misspelled Wizard's Guide when you signed the book.
Does not update the book in the library, just the one in your hand. Also, -update will not work as it is now an entirely new book as far as KonseptBooks is concerned. See -add.
-update
Takes the book in your hand, and updates the book of the same title in the library.
You can also update a book in the library from an unsigned book. If you do, supply the title.
For example /books -update Server News to update the Server News book. Supplying a title will NOT work if you update from a signed book.
Updated books will propagate right away to all logged-in players if they have the permission to get updates.
-unsigned
Get an unsigned copy of a book. Useful for when you want to edit something you've already added to the library and the original has been signed already.
You must supply a book name, like /books -unsigned Our Glorious Admin to edit the most obvious book of them all.
Permissions
Each of the actions has a konseptbooks.action.action node, like konseptbooks.action.reload
In addition, there is konseptbooks.getbooks, which gives permission to get books from the library, and konseptbooks.getupdates that allows the books you own to be automatically updated.
For convenience, two extra nodes are provided with groups of permissions.
konseptbooks.admin gives access to all actions, getting books and updates. It is given by default if you are an operator.
konseptbooks.user gives access to getting books, having them automatically update as well as the -list and -help actions. It is not given to anyone by default, you must specifically grant it.
Updates
By default, this plugin will check for updates when it is activated, and then again every time you reload it's configuration.
It will not download anything, but it will tell you in the console and log that there is a new version, and give you the link to download it.
To disable this behavior completely, set checkForUpdates: false in the configuration file.
Configuration
The configuration is currently rather limited, so let me know if you want or need any additional knobs to twiddle.
Defaults:
autosave: true
checkForUpdates: true
giveNewbieBook: false
newbieBookName: 'Welcome'
autosave
If you don't want the plugin to save changes to the library file, set autosave to false. This is a generally bad idea and is discouraged.
checkForUpdates
If this is set to true, the plugin will check dev.bukkit.org if there is an updated version available. It won't download it for you, but it will put a download link in your log. For the future there may be a change to have it tell you in-game when there is an update, but I've left that out for now because it can be so very very annoying. Leave a comment!
giveNewbieBook
If this is set to true, new players that join the server will be given a book.
newbieBookName
If giveNewbieBook is true, and this book name exists in the library, the book will be given to new users.
NOTE: New users must have the konseptbooks.getbooks permission to actually get the book
If the book does not exist in the library, KonseptBooks will just complain in console, and take no further actions.
@zachrywilsn
You told me, I listened, and I'm glad I did :-)
I told you people would like your idea DemmyDemon! Also glad to see you have good feedback already! Keep it up the good work!
ZachryWilsn
@Newiezz
Great that you find it useful. Thanks for letting me know!
@Thuzle
You know, that's a great point. I'll make setting the lore optional.
I just added it there as a way to distinguish "my" books from regular books.
This plugin is absolutely wonderful. I had a similar plugins for News that updated on login, but the book had to be in their inventory. This allows us to create server books that everyone can see and will always be updated!
I'd love to see an option to remove the lore on last update or how its presented. I use this mod on my live server with Bookshelfs. I have help topics in several books in unlimited libraries. The players can take them out and have personal copies. Now if we ever need to update them, they just look at their books again! This is the best thing ever.
A nice way to globally control every book (if you do it manually) on the server, just the plugin I was searching, awesome dude :D