BookSuite
BookSuite was originally designed to offer players vanilla-style mechanics to make up for the lack of book-related features. The focus has since shifted towards command-based book alterations.
Functions
- Right click a "printing press" with a written book to copy!
- A printing press is a crafting table with inverted stairs above it.
- For easy press creation, sneak and place stairs on top of a crafting bench!
- Original: PrintingPress - The dev went inactive and didn't supply his source. Rewrote from scratch for 1.4.6.
- Default:
- Ops: Do not need supplies.
- Players: Copy anyone's book, uses supplies. (Supplies are ink and a normal book)
- Cauldron as "eraser" block
- Default: Everyone can unsign own books at cost of water, ops can unsign anyone's books for free
- Usage: Right click cauldron with written book
- Aliases
- Automatically sign books with your display name! Supports team prefix and suffixes as well.
- Can be disabled in the config (enable-aliases: false)
- Colored title and author
- related permission for &codes in normally signed books' titles: booksuite.sign.color
- /book
- Default: everyone
- Aliases: booksuite, bsuite, bs
- Help will display based on permissions - if a user does not have permission to use a command, it will not run or appear, and the help will be displayed instead of a denial of permission message.
Option and Usage |
Description |
Permission | Default |
---|---|---|---|
addpage <number> (optional text) | While holding a Book and Quill, adds a page with your text (if any) at specified number | booksuite.command.edit | everyone |
delpage <number> | While holding a Book and Quill, removes specified page | booksuite.command.edit | everyone |
u(nsign) | Unsign book in hand | booksuite.command.unsign + booksuite.command.unsign.other | op |
a(uthor) <new author> | Set author of book in hand to <new author>, supports spaces. | booksuite.command.author | op |
t(itle) <new title> | Set title of book in hand to <new title>, supports spaces. | booksuite.command.title + booksuite.command.title.other | op |
copy <quantity> | Copy book in hand <quantity> times, default 1. Exactly the same permissions as using a press except for the command permission. | booksuite.command.copy | op |
e(xport)| s(ave) <filename> |
Save books to file. If player can delete books and a book by that name already exists, the player is given 10 seconds to use /book overwrite to save anyway. | booksuite.command.export | everyone |
f(ile)| l(oad)| u(rl) <filename| url> |
Import a book from plaintext. Supports formatting with BML. To import a book from url, make a paste of a flat text file. Use "/book u http://dev.bukkit.org/paste/gy7ekjupawivnbxq.txt" to import the example book. | booksuite.command.import + booksuite.command.import.other | everyone, op to import other |
give | Import a saved book for another player. | booksuite.command.give | everyone |
d(elete) <filename> | Delete a saved book | booksuite.command.delete | op |
l(ist) | List all files in /BookSuite/SavedBooks/ | booksuite.command.list | everyone |
reload | Reload the plugin | booksuite.command.reload | op |
update | Check for updates | booksuite.command.update | op |
Configuration
Please refer to the default config.
Permissions
Permissions page. Copy-friendly permissions page!
Source
Idea Credits
ShinyQuagsire - the original PrintingPress (now inactive)
jkcclemens - /book delete
Novantis - cauldrons instead of sponges as eraser blocks
Iseeicy - addpage
Recommended
BookShelf by Pew446 - Completely revolutionizes using books, wonderful dev. A must.
The Library Project by jkcclemens - a book lover's dream! Scores of books for download and a server for writers.
@jkcclemens
Yeah, copies are slow because it wasn't originally designed for multiples. Each loop through checks every single book itemstack until it finds one with identical meta. This happens twice because first I verify that there is room, then I actually do the increasing. Awful system, but it was fine when it was just a single copy at a time.
My next release with new features should fix it. The issue I've been running into is the math, though.I haven't been able to wrap my brain around an efficient way to do it all - removing supplies gives more free space, but removing everything at once could leave me holding unused supplies with nowhere to put them.
I originally had an affiliate link for dropbox as a donation alternative, but that's apparently against Bukkit rules >.> Other than that, no, I actually didn't even have a paypal when I started writing this. Good idea though, coffee can get to be an expensive habit :D
@jkcclemens
Oh wow, that's impressive!
I'm having more trouble than I thought setting up a vm with java 6 - every time I install, it arbitrarily decides that no, I want 7.Driving me mad, but I will get something built for you. NOPE I'M DUMB :DWhat really bothers me is that eclipse is set for 1.6 compliance. I suppose I should actually install 1.6 as well and recompile using that, but I've had issues in the past with multiple java versions on one machine >.<
Edit: Added you to my recommendations, hope that's ok :D
More edit: Finally got everything set up. You're correct, that was the issue. In retrospect, I have no idea why I even threw it. Will have a build up for you shortly.
Even more edit: File is uploaded, time to set up git :D
And yet more edit: I'm assuming that since it does catch things like trying to use a String in a switch, it figured that java.nio was another external package that could be supplied. Ideally from here out compiling on my own machine will work, but now I have a java 6 test environment :D
@jkcclemens
Odd that Eclipse didn't notice, I'll double check my settings when I can get to my comp tomorrow. If I can't find anything wrong I'll set up a vm with java 6 and compile it there.
@jkcclemens
It should be in compatibility mode for java 5.. suppose I can change that to 6 now :D I don't actually have any machines without 7 though, so if you are getting the version mismatch error, let me know and I'll try to fix it.
Edit: If it makes a difference for checking files, I could set up a vm with java 6 to compile it relatively easily.
Great plugin! I've been searching for one today which would fully suit my needs, mainly, one which handles importing from files and also, one which imports correctly. BookSuite is the first one I have come across which seems to fully work. Thanks for this plugin, and good job!! ;)
Super exciting book news! The latest dev builds have the PlayerEditBookEvent that I need to release Aliases (in non-breaking-every-update way, at least) so what time I can spare will be devoted to that. You'll love it, I promise.
I'm afraid that this does mean that copy efficiency will take a back burner (I haven't had the time to deal with it yet) but I think we'll live. Something tells me that no one was in any particular rush to make 500 copies of a single book :p
3.1.2 has been uploaded! When the file is approved, download away.
For a full list of changes, please refer to the changelog.
Bear in mind that the multi-copy is very low quality and wasn't supposed to be released yet, the bugs forced my hand.
As it's looking like I won't have enough time to finish developing a more sophisticated copy command until this coming weekend at least, tomorrow I'll be testing and releasing what I've got - erasers not working with display name changes is a pretty sizable bug as far as BookSuite is concerned.
Please try to refrain from mocking the inefficiency of the copy command, it has feelings too.
@Jikoo_K
sure ill wait patiently :D thanks for your reworking.
@MCBuncey
Found the error, I accidentally used display name instead of minecraft name.. since I don't run a chat plugin on my primary test server, I never caught that. Thanks! I'll try to get a fix out quickly.
It might take a while though, I'm about halfway through a complete rework of copying for an optional /book copy <quantity> to replace presses. If it's urgent, I can push out a dev build for you, but multi-copying is very low quality - any amount above 10 at once causes noticeable server lag due to my awful implementation. It has a config option to cap the maximum, but that's not a good fix, hence the rework. Otherwise, you can expect something by the middle of the week.
Was checking for awhile i noticed that cauldron eraser not working even though i am the owner of the book im trying to unsign http://youtu.be/0S3lNptMP1M
@MCBuncey
Oh good, glad you like it :D Had me scared there, I thought I'd missed something major testing
@Jikoo_K
No i was wrong PlanarWarp I was abit in hurry when installing so i might have done some mistakes on adding the permissions :D well it seem to be working now sorry trouble anyway good plugin.
@MCBuncey
That's odd.. the only way (in the latest release, at least) for presses to fail silently is for users to have the permission booksuite.denynowarn.press
Are erasers working? Are all commands available? Any console errors? Any additional info, especially info regarding permissions, might be of use.
booksuite printing press does not seem to work after /book reload
@YummyTomatoesYay
Thank you! It's very encouraging to hear that people like what I've done so far :D
You are awesome man! Great plugin, great post with easy to read and find information, and always improved with updates. Keep up the good work!
3.1.03.1.1 is out!Super sweet new features include config updater and update checker.
Don't mind the config option alias-mode, it doesn't do anything yet and wasn't supposed to be included.
Noticed a permissions mistake while reformatting the plugin.yml, booksuite.admin and booksuite.command.admin appear to not give access to booksuite.command.edit. Will try to push out a fix with the minor tweaking I've done tomorrow.
3.0.0 is out! When the file is approved, download away.
Please note: the config has changed, please re-generate it.
There are rather a lot of changes and features, so instead of listing them all here I'll just direct you to the changelog.
While it doesn't have mailing yet, I feel that the plugin has reached a point where the basic functions won't need more rewriting. Additions are just sweet new features, not complete reworks, hence 3.0.0 full release without mailing.
@Iseeicy
As in inserting blank pages at <page number>? That wouldn't be hard, can do. Next version. :D