OpenInv
Open anyone's inventory or ender chest and modify it in real time! Works with offline players!
Description
This plugin allows you to open any player's inventory or ender chest and interact with it in real time. You can also do it for offline players! This includes access to the armor slots as well as being able to drop items as if you were the player by moving them into the unused slots to the bottom right. Additionally, you can open any chest that is blocked with blocks above it with AnyContainer and open containers silently (no sound or opening animation) with SilentContainer.
Features
- OpenInv: Open anyone's inventory, even if they're offline.
- Read-only mode! Don't grant edit permission.
- Cross-world support! Allow access only from the same world.
- No duplicate slots! Only armor is accessible when opening self (if allowed at all)!
- Drop items as the player! Place items in the dropper slot in the bottom right. Can be disabled via permission!
- Allow any item in armor slots! Configurable via permission.
- OpenEnder: Open anyone's ender chest, even if they're offline.
- Allow access only to own ender chest! Don't grant permission to open others.
- Read-only mode! Don't grant edit permission.
- Cross-world support! Allow access only from the same world.
- SilentContainer: Open containers without displaying an animation or making sound.
- AnyContainer: Open containers, even if blocked by ocelots or blocks.
Installation
To install OpenInv, simply copy the plugin to your plugins folder and restart/reload your server.
Commands
Please see the wiki.
Permissions
Please see the wiki. For assistance upgrading to 5.0.0, check out the migration section.
Other
Source Code hosted on GitHub
Original Bukkit forum thread: http://forums.bukkit.org/threads/15379
-
View User Profile
-
Send Message
Posted Aug 24, 2012PS, for reference, this is what I'm geting:
01:49:56 [SEVERE] Could not pass event InventoryClickEvent to OpenInv org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:482) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:467) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:1094) at net.minecraft.server.Packet102WindowClick.handle(SourceFile:28) at net.minecraft.server.NetworkManager.b(NetworkManager.java:234) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:119) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:83) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:579) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:467) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NoClassDefFoundError: lishid/openinv/utils/OpenInvEnderChest at lishid.openinv.OpenInvInventoryListener.onInventoryClick(OpenInvInventoryListener.java:44) at sun.reflect.GeneratedMethodAccessor59.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:302) ... 11 more
-
View User Profile
-
Send Message
Posted Aug 22, 2012@TOOTHPlCK1
Good ideas, will see when I can implement those.
-
View User Profile
-
Send Message
Posted Aug 21, 2012@lishid
There is no way to search all online players enderchests? Also can you add an OpenInv.ender.exempt or some sort of enderchest equivalent of OpenInv.exempt
-
View User Profile
-
Send Message
Posted Aug 14, 2012@TNTUP
I'm not sure how the multi-world inventories are tracked, but I'd suggest you ask the multi-world plugin's authors about it.
-
View User Profile
-
Send Message
Posted Aug 14, 2012I have a suggestion, but idk if its possible, but if we can lookup player's enderchest per world (separated by Multiverse-Inventories)
like now, it loads the player enderchest globally, but idk in what world where the enderchest load.
eg: /oe, openender, enderchest <player> <world>
My server is multiworld, I want to know what players put items in their enderchest in teh world.
-
View User Profile
-
Send Message
Posted Aug 11, 2012@deleted_7554077
Nope, but searching that would require loading all the offline players...
-
View User Profile
-
Send Message
Posted Aug 11, 2012Sweet update bro for the new enderchest and super idea to make read-only mode :D Genius
Same question. Is enderchest searching possible?
Thanks
-
View User Profile
-
Send Message
Posted Aug 10, 2012@lishid Perfect, thanks for adding that feature.
-
View User Profile
-
Send Message
Posted Aug 10, 2012Have you uploaded the one to search others enderchest?
-
View User Profile
-
Send Message
Posted Aug 10, 2012Now default will be read-only, unless someone has the editinv/editender permission nodes.
-
View User Profile
-
Send Message
Posted Aug 10, 2012Added new features:
Enderchest opening with
/openender <Player> (aliases: oe, enderchest)
New Permissions Nodes:
OpenInv.editinv - Allows editing of inventory
OpenInv.openender - Allows /openender command
OpenInv.editender - Allows editing of enderchest
-
View User Profile
-
Send Message
Posted Aug 10, 2012@asofold
Ok, I'll look into it later today.
-
View User Profile
-
Send Message
Posted Aug 9, 2012@Mike724
InventoryClickEvent seems fine on first tests...
I could use the /inv <offline-player> command with SimplyVanish while i did not have the permission to modify it. It did prevent changing the inventory by monitoring the InventoryClickEvent. I can not tell what hack clients can do, that may be subject to asking Bukkit devs. (Edit: by that i mean i open an inventory with OpenInv and Simplyvanish prevents me alterating it, given the right permission and flag setups, being vanished.)
Due to your technique of opening inventories like "real" ones, the events are thrown and respected on CraftBukkit side it seems.
So if you monitor the inventory click events and check if the inventory is one of "yours", and only allow modification if a permission is present (i.e. cancel the event otherwise), it would make the whole thing even more powerful.
-
View User Profile
-
Send Message
Posted Aug 9, 2012@C_hase
Sounds good, though I can't put much time on the plugin for now...
-
View User Profile
-
Send Message
Posted Aug 9, 2012I have an idea for the unused slots, you can put something like a Regeneration Potion, Cooked Porkchop, a piece of glass, a xp bottle, and a ender chest. If you pick up any of those items it will instantly set the item back down, but if you pick up the Regeneration Potion, it will heal who evers inventory it is, Porkchop would feed, glass would clear the inventory, xp bottle would give 1 (or a set amount) of levels, and the ender chest would open up their ender chest.
-
View User Profile
-
Send Message
Posted Aug 7, 2012@lishid
I'm pretty sure essentials has it I think you would just hook into the InventoryClickEvent and deny it. http://jd.bukkit.org/doxygen/d9/d42/classorg_1_1bukkit_1_1event_1_1inventory_1_1InventoryClickEvent.html
-
View User Profile
-
Send Message
Posted Aug 7, 2012@Mike724
EDIT: I misunderstood... It's not possible yet to disable editing, though I'm thinking of implementing it soon.
-
View User Profile
-
Send Message
Posted Aug 7, 2012How about a permission disallowing editing of a player inventory?
-
View User Profile
-
Send Message
Posted Aug 7, 2012@bobeeb
Gonna work on that.
@cman85
Did you update to 1.8.6?
-
View User Profile
-
Send Message
Posted Aug 6, 2012Doesn't work for me. Happens whenever I /openinv.
2012-08-06 23:52:50 [SEVERE] null org.bukkit.command.CommandException: Unhandled exception executing command 'openinv' in plugin OpenInv v1.8.4 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:490) at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:878) at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:825) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:807) at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:44) at net.minecraft.server.NetworkManager.b(NetworkManager.java:281) at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109) at net.minecraft.server.ServerConnection.b(SourceFile:35) at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:583) at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:212) at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:476) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:408) at net.minecraft.server.ThreadServerApplication.run(SourceFile:539) Caused by: java.lang.AbstractMethodError at net.minecraft.server.ContainerChest.<init>(ContainerChest.java:38) at net.minecraft.server.EntityPlayer.openContainer(EntityPlayer.java:505) at lishid.openinv.commands.OpenInvPluginCommand.onCommand(OpenInvPluginCommand.java:183) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40) ... 15 more