BetterEnderChest
Secure and configurable Ender Chests! Disable the Ender Chest for certain players, while giving others more rows. Let your players protect their Ender Chest with Lockette and LWC, and let them share their chest. Give some players access to the /enderchest command to open their chest from anywhere. Give your mods the ability ot open anyone's Ender Chest. Ender Chests can be separated between world groups.
BetterEnderChest 2.2
Quote:Spigot 1.8
All updates for Spigot 1.8 won't be posted here, but on the Spigot forums instead: http://www.spigotmc.org/resources/betterenderchest.2073/
See you there!

This plugin makes Ender Chests secure and configurable. Disable the Ender Chest for certain players, while giving others more rows. Let your players protect their Ender Chest with Lockette and LWC, and let them share their chest to their friends in the same way they are already doing that with normal chests. Give some players access to the /enderchest command to open their chest from anywhere. Give your mods the ability ot open anyone's Ender Chest. Ender Chests can be separated between world groups, so that the plugin is also usable on servers with separated inventories.
Some features required saving the Ender Chests in a separate file. The plugin automatically imports from vanilla, MultiInv, Multiverse-Inventories and WorldInventories, and there is a converter to convert back to vanilla.
Mojang.com UUID conversion
BetterEnderChest 2.2.* automatically converts names to UUIDs. To achieve this, BetterEnderChest uses evilmidget38's UUIDFetcher, which was modified a little bit. This requires access to https://api.mojang.com. In BetterEnderChest 2.2.1, it is possible to continue using names instead of UUIDs, so that no access to mojang.com is needed. Set useUUIDs to false in the config.yml. However, you need to enable this option before any chests are converted, otherwise items will be lost.
For more information, see this wiki page.
whitespace hack
Features
Lockette and LWC integration
Uses Lockette signs or LWC protection so that you can allow other people/groups in your chest. When a chest is protected by you, and if someone else is allowed in your chest, he/she will see your items instead of his/her own items. This is completely optional. To enable this, simply add the Ender Chest to your LWC/Lockette custom block list. (See the installation instructions.)
whitespace hack
Public Ender Chest
Optional: unprotected (by Lockette and LWC) chests are public chests. If you don't add the Ender Chest to the custom block list of those plugins, or if you haven't installed them, there will be no way of making private chests.
whitespace hack
MySQL support
Running multiple servers in one network? BetterEnderChest supports MySQL as of version 2.1. If you use the same database and world group, chests will be shared. Flatfile is also supported, so don't worry if you don't have a database.
whitespace hack
Commands
Adds /enderchest to open your Ender Chest from anywhere. Only for ops by default. It also adds a few useful administrative commands to open and manage the Ender Chest inventories. Commands work even when the owner of the inventory is offline.
whitespace hack
Chest customization
You can set the number of slots in the chest to make the Ender Chest not too overpowered. Players can have different chest sizes based on permissions. No client mods needed. You can also set the drops of the chest (nothing, itself, 8 obsidian, an Eye of Ender (with or without 8 obsidian), or with an Ender Pearl (with or without 8 obsidian) ).
whitespace hack
Multiworld support
Inventories can be separated between worlds, so that for example you creative worlds can have different Ender Chest inventories than your survival worlds, or your Nether world can have other Ender Chest inventories than the surface world. On installation, BetterEnderChest will automatically copy the group structure from your current inventory seperation plugin, if you have one. It is possible to setup another structure in BetterEnderChest than in the inventory seperation plugin. This can be used to create very interesting ways of transporting items between worlds and even servers.
whitespace hack
Default Ender Chest
You can have a default chest that all new players get when opening their Ender Chest for the first time. Edit it with /bec openinv --defaultchest or a NBT editor. Changes will be applied after the next (auto)save. Each worldgroup has a different default chest.
whitespace hack
Save file format
The plugin has it's own saving/loading mechanics, either using NBT files or MySQL. This is necessary to make some of the features possible. The plugin automatically imports an Ender Chest when it is opened for the first time. The owner of the Ender Chest doesn't need to be online for this. The importer supports vanilla as well as some other plugins (MultiInv, Multiverse-Inventories and WorldInventories).
It doesn't save too often: every five minutes all changed chests are added to a save queue. You can set how fast chest in the save queue get saved.
whitespace hack
Installation and configuration
Just drop the plugin in the plugins folder. Most features will be disabled by default. Read the guide for starters here or read here about every configuration option.
whitespace hack
Permissions
You can view a complete list of the permissions here. The basic permissions are:
betterenderchest.user- build, craft, open and destroy Ender Chest. Given to everyone by default.betterenderchest.command- use all commands. Operators automatically get this permission.betterenderchest.command.openinv.self- just the permission to open your own Ender Chest (or the public one, as defined in the config.yml) from anywhere using/enderchestor/betterenderchest openinv.betterenderchest.slots.upgrade1- get the number of slots in the Ender Chest as defined in the config.yml.betterenderchest.slots.upgrade2- get the number of slots in the Ender Chest as defined in the config.yml.
whitespace hack
Commands
<required argument> [optional argument]
- /betterenderchest deleteinv <player> - delete all items in someone's Ender Chest.
- /betterenderchest give <player> <item> [amount] [damage-value] - give an item to an Ender Chest inventory.
- /betterenderchest list - list all cached Ender Chest inventories. Useful for debugging.
- /betterenderchest openinv [player] - open an Ender Chest remotely.
- /betterenderchest viewinv <player> - view anyone's Ender Chest from anywhere. Editing is disabled.
- /betterenderchest reload - reload the configuration.
- /betterenderchest swapinv <player1> <player2> - swap two Ender Chests.
- /enderchest [player] - alias for /betterenderchest openinv [player]
Tips:
- Instead of typing /betterenderchest you could also type /bec.
- As seen in the permissions section above, it is possible to allow /enderchest but disallow /enderchest [player].
- /enderchest and /betterenderchest openinv (without the playername) normally open your own Ender Chest, but there is a setting in the config.yml to open the public Ender Chest instead.
- Use
--publicchest as a player name to refer to the public Ender Chest, and use--defaultchest for the default chest. - Use the syntax groupname/playername to open chests from another group. Example: /bec openinv cavegroup/Notch
whitespace hack
Translations
Not all messages can be translated yet, but the most common ones can. See here for more information, along with a premade Dutch translation file.
whitespace hack
-
View User Profile
-
Send Message
Posted Oct 25, 2013@woodzykiler
No. To what Ender Chest would it send the items? Ender Chests don't have an owner.
@DiamondObsidian
Ender Chest protection is managed by Lockette and LWC. Any plugin that makes those claims buyable should work with BetterEnderChest.
-
View User Profile
-
Send Message
Posted Oct 23, 2013Can you make it so you can buy ender chests? so if they buy one it will spawn wherever i want it to? so i set destination for them to spawn? On a skyblock? Thanks
-
View User Profile
-
Send Message
Posted Oct 23, 2013can u make this work with hoppers as well, i been trying to find a VERY light weight plugin thats this will work
-
View User Profile
-
Send Message
Posted Oct 21, 2013@QuantumMiner
Yeah, the file got corrupted somehow. I do not write files in a transactional way. Note that transactioned files are also not completely save: transactioned writes just either write the full file, or they leave an outdated chest file, with the risk of duplicating or missing items.
If you can, upgrade to 2.1.0 (you'll need Minecraft 1.6.4). It doesn't save chests when it didn't get changed since the last autosave, reducing the amount of chests needed in the save queue.
Are there any other stacktraces involving BetterEnderChest? The one you linked just show an error about a file being corrupted, but if you have one of a write failing, it would help a lot fixing potatential bugs in BetterEnderChest.
-
View User Profile
-
Send Message
Posted Oct 20, 2013One of my players lost their enderchest inventory today. Everyone else appears to be fine. Apparently the file was corrupt, possibly due to lag issues earlier? Do you write the inventory files in a transactional way?
Environment: BetterLeads 0.0.6b ChangeHorse 1.5.0 CommandBook 2.3 BetterEnderChest 2.0.8 nbteditor 0.0.7 PermissionsBukkit 2.1 StackableItems 0.9.4.2 WorldEdit 5.5.7 WorldGuard 5.8 CraftBukkit 1.6.2-R1.0 #2879
Error message: 2013-10-20 13:39:14 [SEVERE] [BetterEnderChest] Could not load inventory <PLAYERNAME>. File corruption/permissions? 2013-10-20 13:39:14 [SEVERE] java.io.EOFException 2013-10-20 13:39:14 [SEVERE] at java.util.zip.GZIPInputStream.readUByte(GZIPInputStream.java:264) 2013-10-20 13:39:14 [SEVERE] at java.util.zip.GZIPInputStream.readUShort(GZIPInputStream.java:254) 2013-10-20 13:39:14 [SEVERE] at java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:163) 2013-10-20 13:39:14 [SEVERE] at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:78) 2013-10-20 13:39:14 [SEVERE] at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:90) 2013-10-20 13:39:14 [SEVERE] at net.minecraft.server.v1_6_R2.NBTCompressedStreamTools.a(SourceFile:9) 2013-10-20 13:39:14 [SEVERE] at nl.rutgerkok.betterenderchest.nms.NMSHandler_1_6_R2.loadNBTInventory(NMSHandler_1_6_R2.java:97) 2013-10-20 13:39:14 [SEVERE] at nl.rutgerkok.betterenderchest.io.BetterEnderNBTFileHandler.load(BetterEnderNBTFileHandler.java:32) 2013-10-20 13:39:14 [SEVERE] at nl.rutgerkok.betterenderchest.io.BetterEnderIOLogic.loadInventory(BetterEnderIOLogic.java:207) 2013-10-20 13:39:14 [SEVERE] at nl.rutgerkok.betterenderchest.io.BetterEnderFileCache.getInventory(BetterEnderFileCache.java:103) 2013-10-20 13:39:14 [SEVERE] at nl.rutgerkok.betterenderchest.io.BetterEnderFileCache.getInventory(BetterEnderFileCache.java:118) 2013-10-20 13:39:14 [SEVERE] at nl.rutgerkok.betterenderchest.eventhandler.BetterEnderEventHandler.onPlayerInteract(BetterEnderEventHandler.java:244) 2013-10-20 13:39:14 [SEVERE] at sun.reflect.GeneratedMethodAccessor23.invoke(Unknown Source) 2013-10-20 13:39:14 [SEVERE] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 2013-10-20 13:39:14 [SEVERE] at java.lang.reflect.Method.invoke(Method.java:601) 2013-10-20 13:39:14 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) 2013-10-20 13:39:14 [SEVERE] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) 2013-10-20 13:39:14 [SEVERE] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477) 2013-10-20 13:39:14 [SEVERE] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462) 2013-10-20 13:39:14 [SEVERE] at org.bukkit.craftbukkit.v1_6_R2.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:190) 2013-10-20 13:39:14 [SEVERE] at net.minecraft.server.v1_6_R2.PlayerInteractManager.interact(PlayerInteractManager.java:373) 2013-10-20 13:39:14 [SEVERE] at net.minecraft.server.v1_6_R2.PlayerConnection.a(PlayerConnection.java:628) 2013-10-20 13:39:14 [SEVERE] at net.minecraft.server.v1_6_R2.Packet15Place.handle(SourceFile:58) 2013-10-20 13:39:14 [SEVERE] at net.minecraft.server.v1_6_R2.NetworkManager.b(NetworkManager.java:296) 2013-10-20 13:39:14 [SEVERE] at net.minecraft.server.v1_6_R2.PlayerConnection.e(PlayerConnection.java:116) 2013-10-20 13:39:14 [SEVERE] at net.minecraft.server.v1_6_R2.ServerConnection.b(SourceFile:37) 2013-10-20 13:39:14 [SEVERE] at net.minecraft.server.v1_6_R2.DedicatedServerConnection.b(SourceFile:30) 2013-10-20 13:39:14 [SEVERE] at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:590) 2013-10-20 13:39:14 [SEVERE] at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:226) 2013-10-20 13:39:14 [SEVERE] at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:486) 2013-10-20 13:39:14 [SEVERE] at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:419) 2013-10-20 13:39:14 [SEVERE] at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
Earlier in the month, a different player complained about ender chests not opening, and I saw lots of messages like this in the log. Rebooting fixed that problem, but maybe it is related?
2013-10-02 19:47:56 [WARNING] [BetterEnderChest] Task #4 for BetterEnderChest v2.0.8 generated an exception java.lang.NullPointerException
Also this: WARNING] [BetterEnderChest] Saving is so slow, that the save queue of the previous autosave wasn't empty during the next one! 2013-10-02 19:48:06 [WARNING] [BetterEnderChest] Please reconsider your autosave settings. 2013-10-02 19:48:06 [WARNING] [BetterEnderChest] Skipping this autosave. 2013-10-02 19:48:06 [WARNING] [BetterEnderChest] Task #4 for BetterEnderChest v2.0.8 generated an exception
-
View User Profile
-
Send Message
Posted Oct 20, 2013@flip284
Yeah, but what is the error that you got when you started the server? A startup log would be very helpful. 2.1.0 should give a better error than 2.0.9.
-
View User Profile
-
Send Message
Posted Oct 19, 2013@rutgerkok
Same error with both of these versions:
•B: BetterEnderChest Beta v2.1.0 for 1.6.4 Oct 16, 2013 •R: BetterEnderChest v2.0.9 for 1.6.4 Sep 20, 2013 im running spigot 1107 1.6.4
-
View User Profile
-
Send Message
Posted Oct 12, 2013@shadvalentine
It looks like you have an incorrect config file, and BetterEnderChest didn't notice it until it was too late. Could you post/link to your config file?
-
View User Profile
-
Send Message
Posted Oct 11, 20132013-10-12 02:16:47 [SEVERE] Could not pass event PlayerInteractEvent to BetterEnderChest v2.0.9
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:36)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:190)
at net.minecraft.server.v1_6_R3.PlayerInteractManager.interact(PlayerInteractManager.java:373)
at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java:630)
at net.minecraft.server.v1_6_R3.Packet15Place.handle(SourceFile:58)
at net.minecraft.server.v1_6_R3.NetworkManager.b(NetworkManager.java:296)
at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java:116)
at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37)
at net.minecraft.server.v1_6_R3.DedicatedServerConnection.b(SourceFile:30)
at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:592)
at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:227)
at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:488)
at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:421)
at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583)
Caused by: java.lang.NullPointerException
at nl.rutgerkok.betterenderchest.io.BetterEnderIOLogic.getChestFile(BetterEnderIOLogic.java:40)
at nl.rutgerkok.betterenderchest.io.BetterEnderIOLogic.loadInventory(BetterEnderIOLogic.java:205)
at nl.rutgerkok.betterenderchest.io.BetterEnderFileCache.getInventory(BetterEnderFileCache.java:103)
at nl.rutgerkok.betterenderchest.io.BetterEnderFileCache.getInventory(BetterEnderFileCache.java:118)
at nl.rutgerkok.betterenderchest.eventhandler.BetterEnderEventHandler.onPlayerInteract(BetterEnderEventHandler.java:244)
at sun.reflect.GeneratedMethodAccessor236.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425)
-
View User Profile
-
Send Message
Posted Sep 29, 2013@LHammonds
It's more an unintended side effect. I made it so that when you allow a someone else into your Ender Chest, that player sees your chest. This allows players to share their Ender Chest.
Let's see if I can fix this. If not, I can also add an option to disable chest sharing altogether.
-
View User Profile
-
Send Message
Posted Sep 29, 2013Thanks for creating and sharing this plugin. I love how configurable this plugin was designed.
I'm not sure if this is expected behavior or not but when using LWC to create a public lock, it allows anyone to open the chest of the person that created the lock. Rather than just locking the chest to prevent its destruction, it opens the chest of the owner (seems strange)
Environment
CraftBukkit 1.6.4-R0.1, PermissionsEx 1.20.2, BetterEnderChest 2.0.9, LWC 4.4.0, Ubuntu Server 12.04.2 LTS 64bit, Java 1.7.0_25 64bit
Thanks,
LHammonds
-
View User Profile
-
Send Message
Posted Sep 28, 2013@flip284
Please look into the console, an error should have popped up when you started the server. Make sure that you are using Minecraft 1.6.4. If you are still using Minecraft 1.6.2, continue using 2.0.8.
-
View User Profile
-
Send Message
Posted Sep 27, 2013updated the plugin from v2.0.8 to v2.0.9 and now my players get this error whenever trying to open a chest: Enderchests have been disabled, because enderchests cannot be saved or loaded.
-
View User Profile
-
Send Message
Posted Sep 20, 2013http://dev.bukkit.org/bukkit-plugins/ender-chest/files/32-better-ender-chest-v2-0-9/
-
View User Profile
-
Send Message
Posted Sep 20, 2013@rutgerkok
Awesome! Thanks for the reply, and a bigger thanks for keeping up with the updates. It's much appreciated. This is a really nice plugin, not to mention my donators aren't too happy that they can't access their enderchests at the moment. :P haha
-
View User Profile
-
Send Message
Posted Sep 20, 2013@22alec22
The file is uploaded, now it's just waiting on the BukkitDev staff to approve it. :)
-
View User Profile
-
Send Message
Posted Sep 20, 2013I hate to be "that guy", but any chance of an update for 1.6.4 soon?
-
View User Profile
-
Send Message
Posted Sep 18, 2013@BoomShnizel
You can already deny people opening Ender Chests by denying the permission node
betterenderchest.user.openin some worlds.About blocking certain items, I can add that once I have more time.
-
View User Profile
-
Send Message
Posted Sep 18, 2013@rutgerkok
Awesome plugin! Would be nice if you can add a list of groups that cant open enderchests at all and an option to deny put of certain items in the enderchest (group list) for example:
:D
-
View User Profile
-
Send Message
Posted Sep 4, 2013@Zeinh
No, all chest contents are safe. I reworded the Save file format paragraph to be a little bit more clear about it.