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
In reply to danechek:
Clearly not.
Hi,
you created very good plugin, I use it on my server.
But I have an idea for you. Can you add to the config translatable messages?
Thanks,
ProPl4yerCz
In reply to Forge_User_63954279:
#61 has been open for over 2 years for this, anyone is free to take a stab at it. The reason I haven't done it myself is that I've never found a language system that truly satisfies my desire for proper OO principals.
Getting this error running 1.14.4... https://pastebin.com/HKAuqgtB
In reply to Forge_User_35549337:
Fixed in 4.0.6
Can you make it that plugin hooks up in CustomEnderChest
- CustomEnderChest
- https://dev.bukkit.org/projects/custom-enderchest
In reply to Vennt0x:
CustomEnderChest already offers its own commands to open a player's ender chest. If you're having issues with command conflicts, please use your commands.yml to alias /ec to /customenderchest:ec.
In general I will not add support for plugins that offer changes to inventories - there are a prohibitive amount, and if I support one I will have to support them all.
quiestion guys, so, i install this plugin for mi spigot server (1.14.3) and im de "owner", so i need to use this, but the regular players have default activated the silentchest
what i need to do to deleyte their permissions to that?
i am on 1.14.3 and when a player logs after me opening their inv all their shit gets jumbled which is really a shame as i want my players to be able to use this plugin. Plz fix xox
For some reason, when i use this plugin on my server (Paper version git-Paper-70 (MC: 1.14.2) )
It will jumble up a players inventory. Move things up a row ,down a row/around etc
They will lose items, shoes on their head, pants on their chest box, etc just swap things around and lose items.
I've never had this issue before and i've used this plugin for months now even in 1.13 and a bit of time in 1.14.x
In reply to rainb0wtea:
I can confirm having this issue also on Spigot 1.14.3, when I view someone's inventory and if they relog / reload their playerdata immediately, the armor gets reversed (boots on head, etc).
Doesn't happen every time though(?)
In reply to crashdemons:
Yeaaahh but its pretty bad, i've had people lose items.
I've had to use another plugin in the meantime that copies their inventory and we look only at a copied version
In reply to rainb0wtea:
Could use a bit more info. Is it only armor/off hand? Is there a specific version you upgraded to that started this behavior? Does this happen using normal Spigot?
Afraid I've been devoting my free time to a rewrite of a very large plugin and haven't taken a look at anything with 1.14.3. My usual testbed hasn't reported any issues, but they're still somewhere mid-1.14.2.
I'm getting an issue with chests staying open for people, is this a known issue? It only started happening when I put it openinv, and only to mods and admins that have permissions set up for them.
Update (literally 5 minutes later):
Found the issue to be caused by the permission openinv.silent.default
In reply to xleguimx:
Server version? OpenInv version? Need more info. That permission only changes the default behavior of SilentContainer.
Great plugin. I've used it for a long time. :)
T,y update 1.14.1, i like this plugin.
Hi, I'm getting this error on OpenInv 4.0.0 with paper-23 for 1.14.1
I hope this helps!
In reply to AcronMC:
Whoops, sorry, looks like I forgot to post 4.0.1 here. Releasing from mobile would be a pain, but in the meantime it's available on GitHub in the releases tab.
Hi, I've just upgraded Spigot to 1.14.1, and while the plugin works fine (or at least I haven't been able to see a problem), we've been getting a lot of the errors below in the console. On Spigot 1.14 it wasn't present either at all, or maybe just once-twice a day, so I didn't really pay attention to it, but now it's been going off really often. I have no experience with java exceptions, but I'm sure it will tell you a lot more :)
[11:27:21] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to OpenInv v4.0.0
org.bukkit.event.EventException: null
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) ~[minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:520) ~[minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:505) ~[minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:423) ~[minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.PlayerInteractManager.a(PlayerInteractManager.java:435) ~[minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:1263) ~[minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.PacketPlayInUseItem.a(PacketPlayInUseItem.java:27) ~[minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.PacketPlayInUseItem.a(PacketPlayInUseItem.java:1) ~[minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:13) ~[minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18) [minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(SourceFile:135) [minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) [minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(SourceFile:114) [minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.MinecraftServer.aW(MinecraftServer.java:895) [minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:888) [minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeAll(SourceFile:99) [minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.MinecraftServer.sleepForTick(MinecraftServer.java:871) [minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:805) [minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_191]
Caused by: java.lang.NoSuchMethodError: net.minecraft.server.v1_14_R1.TileEntityShulkerBox.s()Lnet/minecraft/server/v1_14_R1/TileEntityShulkerBox$AnimationPhase;
at com.lishid.openinv.internal.v1_14_R1.AnySilentContainer.isBlockedShulkerBox(AnySilentContainer.java:140) ~[?:?]
at com.lishid.openinv.internal.v1_14_R1.AnySilentContainer.isAnyContainerNeeded(AnySilentContainer.java:93) ~[?:?]
at com.lishid.openinv.listeners.PlayerListener.onPlayerInteract(PlayerListener.java:65) ~[?:?]
at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_191]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_191]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:316) ~[minecraft_server.jar:git-Spigot-8043ebc-dd99c5b]
... 19 more