【ChatManager 448 [Skript]】- Admin Commands | GUI | Easier Cu
1.3.0-[Beta]Fully Customizable System to properly control the Chat System! Supports 1.8-1.18 [High Quality]
By the way! Check out my server at play.sunknights.fun!
Consider donating!
It helps me keep on supporting my plugins while keeping them free! DM me and I'll put your name here! Click me!
About
Ever wondered why bookshelves in Minecraft cannot be used to store books? Well, now you can!
With this plugin, you will be able to open bookshelves like chests and store books inside them.
Pictures
Show Screenshots
^The Bookshelf interface with the default 2 rows
^The Particle effect when a player is opening it, the plugin chooses randomly between a yellow and a purple particle to play
Features
1. The bookshelves!
- Right-click bookshelves to open a chest-like inventory
- Bookshelves emit particles when a player is opening it (togglable in config) [1.13 or above]
- Customize the number of rows each bookshelf has (default to 2 rows in config)
- Plays a book placing sound when a player place or remove an item in a bookshelf
- Limit the type of item that can be placed into bookshelves (Default to only books-like items in config)
- Supports moving bookshelves with pistons and sticky pistons
- Supports named bookshelves! (Similar to when you name a chest and place it down, the inventory retains the chest's item name)
- Support Droppers (Need to be enabled in config)
- Experimental support Hoppers and Hoppers Minecarts (Need to be enabled in config)
(Note that it is quite resource intensive if you have too many bookshelves)
- Supports creative shift-middle-click block to copy bookshelf with items inside
2. Enchantment Table Boosting! [1.11 or above]
- Boost Enchantment Tables with surrounding it with bookshelves containing enchantment books with the enchantment of your choice!
- More books, higher chance!
- For example, if every slot of all bookshelf is Sharpness 5 books you will be guaranteed a sharpness enchantment!
- The feature can be toggled in the config as always
Supported Plugins
- Supports LWCX Protections (Requires the latest version)
- Supports BlockLocker Container Locking
- Supports WorldGuard regions (Requires at least version 7.0.0)
- Supports GriefPrevention land claim protections
- Supports RedProtect land claim protections
- Supports Residence land claim protections
- Supports Towny land claim protections
- Supports ASkyBlock island protections
- Supports BentoBox island protections
- Supports SuperiorSkyblock2 island protections
- Supports PlotSquared plot protections (Requires v4 or v5)
- Supports OpenInv silent chest
- Supports Essentials player vanish
- Supports CMI player vanish
- Supports SuperVanish player vanish
- Supports PremiumVanish player vanish
- Supports InteractionVisualizer bookshelf interact animations
(Bookshelves are seen just like chests in most of these plugins)
Installation
1. Put Bookshelf.jar into the plugins folder
2. Start the server
3. Edit the config (if you need to)
4. Restart the server (if you changed something in the config in step 3)
Commands
/bookshelf reload - Reloads the plugin
/bookshelf update - Check for updates
Q&A
Hoppers and Droppers do not work! What do I do?
You have to enable "EnableHopperSupport" and/or "EnableDropperSupport" in the config!
(Note that it is quite resource intensive if you have too many bookshelves)
Enchantment Table Boosting does not work, and there are no errors, and I've already enabled it in the config, why is that?
If you are running Minecraft version 1.8 - 1.10.2, unfortunately, enchantment table boosting feature is unsupported on these versions.
If you are running Minecraft version 1.11 or above, double check your settings and permissions or contact me!
The shift + pick block with NBT function does not work, I already gave myself permission, what's wrong?
Currently, the feature is only tested in Minecraft 1.15 - 1.15.2. If it doesn't work in another version, it is normal and is being worked on. Thank you for being patient!
Permissions
bookshelf.use - Allow players to use a bookshelf [default: false]
bookshelf.reload - Reload the plugin [default: op]
bookshelf.copynbt - Allows you to shift-middle-click to copy bookshelf with items inside in creative [default: op]
bookshelf.update - Allow you to receive update messages [default: op]
Default Config
Show Config
Options:
#The number of rows for a bookshelf (Allows 1-5)
BookShelfRows: 2
#Whether to use the item whitelist or not
UseWhitelist: true
#Items which is allowed to be placed into a bookshelf
#See this for item names: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Material.html
Whitelist:
- BOOK
- WRITABLE_BOOK
- WRITTEN_BOOK
- ENCHANTED_BOOK
- KNOWLEDGE_BOOK
#The default inventory name for an unnamed bookshelf
Title: "Bookshelf"
NoPermissionToReloadMessage: "&cYou do not have permission use this command!"
NoPermissionToUpdateMessage: "&cYou do not have permission use this command!"
#Play particles or not when open
ParticlesWhenOpened: true
#Whether to allow bookshelves to work with hoppers
EnableHopperSupport: false
#Whether to allow bookshelves to work with droppers
EnableDropperSupport: false
#Whether to enable enchantment table boosting
EnableEnchantmentTableBoosting: true
#Max percentage of the enchantment table boosting feature
#Accepts integer from 0 - 100
EnchantmentTableBoostingMaxPercentage: 80
#Enable update notifications for admins
Updater: trueAPI
Bookshelf does provide an API for developers to customize or use its functions
- When hoppers or hopper minecarts exchange items with bookshelves InventoryMoveItemEvent will fire, just listen to it just like any other bukkit events
- When a player opens or closes a bookshelf, PlayerOpenBookshelfEvent or PlayerCloseBookshelfEvent will fire. If a player does not have permission to access that bookshelf (includes protection from other plugins, it will fire as cancelled (After priority LOWEST)
https://github.com/LOOHP/Bookshelf/tree/master/src/com/loohp/bookshelf/API
More info through the link above
Here is a simple method that opens the inventory of a bookshelf for a player without the player to clicking the bookshelf:
Show Code Example
public void openBookshelForPlayer(Block bookshelfBlock, Player player) {
//Get the location of the bookshelf Block
Location location = bookshelfBlock.getLocation();
//Check if the bookshelf is loaded through the API
if (BookshelfAPI.isBookshelfLoaded(location)) {
//Get the inventory of that bookshelf through the API
Inventory inventory = BookshelfAPI.getBookshelfInventory(location);
//Open the bookshelf
player.openInventory(inventory);
}
}Limitations
- Bookshelves do not output a redstone signal via a redstone comparator, I will attempt to add that once I find a method that works :/
- Bookshelves transactions are not picked up by block loggers such as coreprotect, I will try to add that or create my own logging system in the future.
Notes:
I only guarantee that the plugin works perfectly and with full features in the latest version of spigot and paper
Mainly because I am a student and my time is limited, sadly you can't live with just doing what you like, writing plugins, life just doesn't work like what we all wanted :(
Older versions are just "supported", so they might be missing a few features or hooks, but generally should work just fine.
Nevertheless, do your own testing to be sure, just like any other plugin in this forum.
Report problems in the discussion, not in a review. Thanks :)
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta