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
- Read-only permissions for OpenInv and OpenEnder! Just don't give the editinv and editender permissions nodes!
- Administrators can modify any user's inventory or ender chest contents as they wish, in real time.
- Access from anywhere! No distance or obstacle limitations.
- Permissions support.
- Player inventories and ender chests of any player can be opened. Even for offline players!
- Using the openinv or openender command without any arguments opens the last accessed player's inventory/ender chest.
- Search all online players for a certain item in their inventory or ender chest.
- Protect players from openinv with exempt permission, and bypass protection with override permission.
- Cross-world openinv protection.
- Self-opening protection.
- Open containers that are blocked by solid blocks or ocelots with the 'AnyContainer' feature.
- Silent opening of containers with no sound or opening animation.
- Drop items as the other player (by putting it in the unused slots in the bottom right)
Installation
To install OpenInv, simply copy the plugin to your plugins folder and restart/reload your server.
Commands
Command | Aliases | Description |
---|---|---|
/openinv <player> | oi, inv, open | Opens a specified player's inventory. |
/openender <player> | oe | Opens a specified player's ender chest |
/searchinv <item> [minAmount] | si | Lists all players that have a certain item in their inventory. |
/searchender <item> [minAmount] | se | Lists all players that have a certain item in their ender chest. |
/searchenchant <[enchantment] [MinLevel]> | searchenchants | Lists all online players with a specific enchantment. |
/anycontainer | ac, anychest | Toggles AnyContainer mode (blocked container bypass) |
/silentcontainer | sc, silent, silentchest |
Toggles SilentContainer mode (open containers silently) |
Permissions (CaSe SeNsItIvE)
Permission Node | Description |
---|---|
OpenInv.openinv | Gives permission to use OpenInv. |
OpenInv.openself | Allows opening the inventory of the command user. |
OpenInv.editinv | Allows editing of inventories. |
OpenInv.openender | Allows opening of ender chests. |
OpenInv.openenderall | Allows opening of ender chests of everybody. Without this permission, someone can only open his own ender chest. |
OpenInv.editender | Allows editing of ender chests. |
OpenInv.search | Gives permission to use searchinv and searchender command. |
OpenInv.searchenchant | Required to use /searchenchant. |
OpenInv.crossworld | Allows cross-world use of openinv. |
OpenInv.exempt | Makes the player's inventory protected (unable to be opened). |
OpenInv.override | Gives permission to open anyone's inventory, even protected ones. |
OpenInv.anychest | Gives permission to open chests that are blocked by a block on top. |
OpenInv.any.default | Causes AnyContainer to be enabled by default. |
OpenInv.silent | Gives permission to open chests in total silence, without animation. |
OpenInv.silent.default | Causes SilentContainer to be enabled by default. |
Other
Source Code hosted on GitHub
Original Bukkit forum thread: http://forums.bukkit.org/threads/15379
@minejames1
Yeah, you weren't supposed to do that... Gonna fix that in next version.
When you try /openinv <name> from console it reports errors.
@lishid
It is indeed. Metrics is only used by this plugin on my plugin list. Maybe this would be fixed by storing the files in a MySQL server versus flatfile yml so that it doesn't need to have so many open files? Just an idea. I really do love this plugin.
@ihasamoose
Not caused by this plugin.
21:28:43 [INFO] [Metrics] Too many open files 21:28:44 [SEVERE] net.minecraft.server.WorldConlictException: Failed to check session lock, aborting 21:28:44 [SEVERE] at net.minecraft.server.WorldNBTStorage.checkSession(WorldNBTStorage.java:74) 21:28:44 [SEVERE] at net.minecraft.server.World.l(World.java:2660) 21:28:44 [SEVERE] at net.minecraft.server.World.y(World.java:282) 21:28:44 [SEVERE] at net.minecraft.server.World.save(World.java:272) 21:28:44 [SEVERE] at net.minecraft.server.World.doTick(World.java:1745) 21:28:44 [SEVERE] at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:524) 21:28:44 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:435) 21:28:44 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
Crashes my server.
@mraof
You can't register two minecraft users with the same name and different capping. It's not possible to have two users with same name but different capping on a non-cracked server. You must be running offline mode (a.k.a cracked mode) in order to have that.
Also, a minecraft client that allows you to change username is a cracked client.
Yes, my server is on linux, but its not cracked, and neither is my client, I just wrote a script to add an option of choosing my username when running Minecraft, in case I feel a need to run multiple clients for some reason, such as testing a plugin
@fjutte
You're welcome :D
if I was Rod Stewart I would sing to this plugin "have I told you lately that I love you?"
thanks lishid!!!
@mraof
Why do you have that? The only reason that is possible is if you're running a cracked server on linux.
When you said that you fixed case sensitivity, do you mean it now is or isn't? I have both a mraof.dat and Mraof.dat, and I don't want them to get mixed up
@Jucko13
Ah, did I forget to do it... Thanks for reporting.
just a little bug found. i know this plugin is not supposed to be used by the console. but when you do you'll get an
error. this error is caused because you dont check for the
. just a tip :P
@thefowles1
Yes, '*' also works.
@genogeist
Will be fixed for next version, but it should not affect the functionality of the plugin in any way, so you can just ignore it...
@balkonier
Yeah, it's just a server/version count. I'll remove the error on next version.
@genogeist
Yeah I just restarted and got the same error... before the restart everything worked fine.. is it possible that the plugin is collecting usage data or something like that?
I keep getting a error when I start the server: 03:38 AM [SEVERE] java.io.IOException: Server returned HTTP response code: 500 for URL: http://metrics.griefcraft.com/report/OpenInv 03:38 AM [SEVERE] at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 03:38 AM [SEVERE] at lishid.openinv.utils.Metrics.postPlugin(Metrics.java:241) 03:38 AM [SEVERE] at lishid.openinv.utils.Metrics.beginMeasuringPlugin(Metrics.java:185) 03:38 AM [SEVERE] at lishid.openinv.OpenInv.onEnable(OpenInv.java:66) 03:38 AM [SEVERE] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:231) 03:38 AM [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:1057) 03:38 AM [SEVERE] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:379) 03:38 AM [SEVERE] at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:191) 03:38 AM [SEVERE] at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:174) 03:38 AM [SEVERE] at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:357) 03:38 AM [SEVERE] at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:344) 03:38 AM [SEVERE] at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:175) 03:38 AM [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:408) 03:38 AM [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:465)
not sure if there is anything you can do about it, just figured you might like to know about it, the server it is trying to get to is returning a 500 - Internal Server Error
@lishid
Do you mean openinv.*?
@lishid
Much appreciated :)
@Hangar
I did not know about it until recently...
Also, I'll see what I can do for the messages.
@lishid
Yeah that's what I've been doing, but I thought maybe you would reconsider stepping on a command from one of the most popular plugins that's been around forever :/
Well then, one other thing: my users would like to be able to open chests silently without the text spam. If you have a room of chests and you're looking for something, you can kiss goodbye to any chat that was on your screen. Maybe that could be an option at some point.
Thanks :)