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
Any chance you can also add "ec" for enderchests as a alias ?
Also does this support all versions from 1.8 + ?
In reply to TheCynicalKitty:
You can use Bukkit's commands.yml feature to add aliases for commands. OpenInv currently supports 1.8, 1.13, and 1.14, exactly as the tags say. If you are running another version, use OpenInv-legacy 4.0.0.
I can't remove items from their inventory. But i can from their Enderchest.
I have openinv.* and OP, but still can't modify the inventory.
What do i missing ?
In reply to apatukapy:
Make sure your permissions plugin is not case-sensitive and that an inherited group is not explicitly denying a specific node, such as OpenInv.editinv.
Unless i give the permission node '*' anyone that has permission to use commands like '/openinv' the command will not auto complete and will always show up as red text, but the command still works. im using paper 1.14.4
In reply to daddy_spin:
At a glance it looks like a flaw in Spigot's command completion logic. Sounds like they're not respecting the fact that multiple permissions allow access to commands, which I'll admit it is a moderately obscure feature. I'll look into it.
Edit: Before I invest time - does this happen with only OpenInv installed or do you also run a plugin that manages tab completion?
In reply to Jikoo_K:
I am using a plugin that manages tab completion, but i only have it blocking worldedit's commands for users and your plugin is the only one i am seeing that does not have its tab completion working.
In reply to daddy_spin:
Righto. I may just manage permissions differently to solve that, but I'll see if it is in fact the multiple allowed nodes causing completion issues.
Using 1.12.2 Paper, and using 3.3.3 and players inv just shows as empty same for echest?
In reply to GodsDead:
I no longer am supporting 1.12. However, 4.0.0-legacy was the last version for it, so if you're having issues, try updating to that.
Hello! Great plugin :)
Could I make a suggestion? Would it be possible to implement the opening of inventories after death? I've been looking and the only one I've found is for 1.8. I don't want players to keep their inventory when they die, only for administrators to have the option to reset it (for example, on a pvp without consent).
In reply to Forge_User_48689199:
Sorry, storing inventories is outside of the scope of OpenInv. There are definitely plugins with that functionality out there, try searching for gravestone-style plugins.
Hello!
I'm having a bit of a problem. Is there a way to disable the silent opening of the chests without it interupting with other addons? I'm currently also using SuperVanish, and with that plugin if you go into vanish mode, the chests you open don't give any sound or animation of them being opened, and if you go out of vanish mode the chest sounds and animations go back to normal.
The problem with this plugin is if the silentchest is enabled, you always open chests in silent mode, no matter if you're in vanish or not, but if i disable silentchest alltogether, when i go into vanish mode it doesn't open chests in silent mode anymore. Is there a fix to this? Thank you.
In reply to CrazyClash:
Make sure you are not using AnyContainer.
In reply to Jikoo_K:
Thank you very much, that fixed it! Only had that problem and now that is resolved, can't say anything else other than this is an excellent plugin, thank you for making it, it makes moderation so much easier! :)
Hi I am having issues creating the 'Permissions' file... i don't know what it should look like...
can you give me an example of the 'OpenInv.openinv' permission where the name of the player is TEST_1?
In reply to the_marki_volley:
Bukkit's inbuilt permissions system only allows you to grant and deny permissions to ops, non-ops, or everyone. What you are describing, granting a specific player a permission, requires you to install a permissions plugin. I suggest LuckPerms.
In reply to Jikoo_K:
thank you for your fast reply, i appreciate the fact that you are there to help us (the ignorants)
:)
02.08 18:48:10 [Server] ERROR Could not pass event PlayerInteractEvent to OpenInv v4.0.1 02.08 18:48:10 [Server] INFO java.lang.NoSuchMethodError: net.minecraft.server.v1_14_R1.TileEntityShulkerBox.t()Lnet/minecraft/server/v1_14_R1/TileEntityShulkerBox$AnimationPhase; 02.08 18:48:10 [Server] INFO at com.lishid.openinv.internal.v1_14_R1.AnySilentContainer.isBlockedShulkerBox(AnySilentContainer.java:140) ~[?:?] 02.08 18:48:10 [Server] INFO at com.lishid.openinv.internal.v1_14_R1.AnySilentContainer.isAnyContainerNeeded(AnySilentContainer.java:93) ~[?:?] 02.08 18:48:10 [Server] INFO at com.lishid.openinv.listeners.PlayerListener.onPlayerInteract(PlayerListener.java:65) ~[?:?] 02.08 18:48:10 [Server] INFO at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor21.execute(Unknown Source) ~[?:?] 02.08 18:48:10 [Server] INFO at org.bukkit.plugin.EventExecutor.lambda$create$1(EventExecutor.java:69) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:80) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:545) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at org.bukkit.craftbukkit.v1_14_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:445) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.PlayerInteractManager.a(PlayerInteractManager.java:440) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.PlayerConnection.a(PlayerConnection.java:1361) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.PacketPlayInUseItem.a(PacketPlayInUseItem.java:27) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.PacketPlayInUseItem.a(PacketPlayInUseItem.java:5) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:23) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.TickTask.run(SourceFile:18) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeTask(IAsyncTaskHandler.java:136) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.executeNext(IAsyncTaskHandler.java:109) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.MinecraftServer.aX(MinecraftServer.java:1012) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.MinecraftServer.executeNext(MinecraftServer.java:1005) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.IAsyncTaskHandler.awaitTasks(IAsyncTaskHandler.java:119) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.MinecraftServer.sleepForTick(MinecraftServer.java:989) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at net.minecraft.server.v1_14_R1.MinecraftServer.run(MinecraftServer.java:922) ~[patched_1.14.4.jar:git-Paper-153] 02.08 18:48:10 [Server] INFO at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181] 02.08 18:48:36 [Server] INFO CONSOLE is
In reply to danechek:
You're running 4.0.1. Current version is 4.0.6. You need to update plugins when you update your server.