[FUN][ADMN] OpenInv 2.2.4 - Open anyone's inventory as a chest Real-Time! [1.4.5-1.7.10]

Discussion in 'Archived: Plugin Releases' started by lishid, Apr 30, 2011.

  1. Offline

    lishid

    OpenInv - Open anyone's inventory as a chest! in real time! Works with offline players! Open EnderChests of any player via command!

    Source Code hosted on GitHub

    Link to BukkitDev: http://dev.bukkit.org/server-mods/openinv/

    Description:
    Open a player's inventory as a chest and interact with it in real time.
    Access to the inventory and armor slots.
    Open any chest that has blocks on top (blocked chests) with AnyChest.
    Open a chest silently (without chest animation nor sound) with SilentChest.
    Open any player's EnderChest from a command.
    Drop item as another player (by putting it in the 5 unused slots in openinv)!

    How to use:
    Install: Copy to your plugins folder, and restart/reload your server.

    Use:
    Use command "/openinv <player>" to open a player's inventory
    Use command "/toggleopeninv" to toggle Item openinv:
    Code:
    Hit a player with an item of your choice (STICK by default), and you will open the player's inventory (no damage)
    Right click the air with the item opens the last opened inventory (toggle must be ON)
    Use command "/anychest" to toggle anychest (blocked chest bypass)
    Use command "/silentchest" to toggle silent chest
    Use command "/openender <Player>" to open a player's enderchest
    Use command "/searchinv <Item> [MinimalAmount]" list all players having a certain item in their inventory.

    Code:
    To use a sign for quick access (this uses the normal Openinv.openinv permissions, override and exempt applies), You need:
    "[openinv]" (without quotes) on the 1st line
    and the player's name on the other lines.


    Permissions nodes (CaSe SeNsItIvE):
    "OpenInv.openinv" gives permission to use OpenInv
    "OpenInv.openself" Allows opening the inventory of the command user
    "OpenInv.editinv" - Allows editing of inventory

    "OpenInv.openender" - Allows opening of EnderChests
    "OpenInv.openenderall" - Allows opening of EnderChests of everybody. Without this permission, someone can only open his own enderchest.
    "OpenInv.editender" - Allows editing of enderchest

    "OpenInv.search" gives permission to use searchinv
    "OpenInv.crossworld" allows cross-world 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.silent" gives permission to open chests in total silence, without animation.
    (without quotes)



    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 contents as they wish, in real time.
    • Access it anywhere! No distance or obstacle limitations.
    • Permissions support.
    • Use the command without argument opens the last accessed person's inventory.
    • Use sticks or any (configurable) item and toggles for quick access.
    • Search all online players for a certain item in their inventory.
    • Protect players from openinv with exempt permission, and bypass protection with override permission.
    • Use a sign to perform openinv for convenience.
    • Cross-world openinv protection.
    • Offline player openinv supported.
    • Open chests that are blocked because they have a solid block on top. (AnyChest)
    • Silent opening of chest, no sound and opening animation.
    • EnderChests can be opened, even for offline players!
    • NEW: Drop item as another player (by putting it in the 5 unused slots in openinv)
    • Self-opening protection.
    Image:
    OpenInv.png
    Test.png

    Video tutorial:



    Credits:
    Thanks to WMisiedjan for the source of iSee, located here: http://forums.bukkit.org/threads/6676/
    Thanks to Dark_Balor from AdminCmd for helping with the bugs in Offline Openinv.
    Thanks to the many supporters who've tested this plugin.

    Download:


    Download OpenInv (2.2.4) CB1.4.5 up to CB1.7.10

    Legacy versions:
    See http://dev.bukkit.org/server-mods/openinv/

    Source Code

    Todo:
    • None ATM
    Bugs:
    • None ATM
    Statistics:
    Openinv will connect to http://mcstats.org/ to collect anonymous data (only version information).

    Changelog:

    Version 2.2.4[CB 1.7.10]
    • Fixed getting inventory from other plugin's custom inventory crashing

    Code:
    Version 2.2.2[CB 1.7.10]
    Finally fixed offline players
     
    Version 2.1.8[CB 1.7.10]
    Updated to MC1.7.10
    Removed metrics as the service is no longer available
     
    Version 2.1.7[CB 1.7.8]
    Fixed Offline player NoSuchMethodError
     
    Version 2.1.6[CB 1.7.8]
    Fixed ClassNotFoundError.
     
    Version 2.1.5[CB 1.7.8]
    Updated to CB1.7.8
     
    Version 2.1.4[CB 1.7.5]
    Updated to CB1.7.5
     
    Version 2.1.3[CB 1.7.4]
    Fixed silent chest not working with sneak+build.
    Removed /enderchest as alias for compatibility with Essentials. Use /openender or /oe instead.
     
    Version 2.1.2[CB 1.7.2]
    Changed updater to be compliant with new Bukkit rules.
     
    Version 2.1.1[CB 1.7.2]
    Changed updater to be compliant with new Bukkit rules.
     
    Version 2.1.0[CB 1.7.2]
    Update to CB1.7.2.
     
    Version 2.0.9[CB 1.6.4]
    Update to CB1.6.4.
     
    Version 2.0.8[CB 1.6.2]
    Added * nodes for permissions.
     
    Version 2.0.7[CB 1.6.2]
    Added OpenInv.openenderall permission node.
     
    Version 2.0.6[CB 1.6.2]
    Updated to CB1.6.2.
     
    Version 2.0.5[CB 1.6.1]
    Fixed editinv not locking shift-click and click-drag.
     
    Version 2.0.4[CB 1.6.1]
    Added config options for notifications for SilentChest and AnyChest.
     
    Version 2.0.3[CB 1.6.1]
    Updated to CB1.6.1.
     
    Version 2.0.2[CB 1.5.2]
    Updated to CB1.5.2.
     
    Version 2.0.1[CB 1.5.1]
    Fixed player loading crash caused by CraftBukkit internal change.
     
    Version 2.0.0[CB 1.5.1]
    Fixed trapped chest problem.
     
    Version 1.9.9 [CB 1.5.1]
    Updated to 1.5.1.
     
    Version 1.9.8 [CB 1.5]
    Updated to 1.5.
     
    Version 1.9.7 [CB 1.4.7]
    Fixed offline inventory not saved when server restarts.
     
    Version 1.9.6 [CB 1.4.7]
    Updated to 1.4.7.
     
    Version 1.9.5 [CB 1.4.6]
    Added new feature: Put item in any of the 5 unused slots and the item will be dropped by the targeted player.
     
    Version 1.9.4 [CB 1.4.6]
    Updated for MC1.4.6.
     
    Version 1.9.3 [CB 1.4.5]
    Fixed an issue about copying code from my other plugin without proper renaming.
     
    Version 1.9.2 [CB 1.4.5]
    Massive rewrite to support new CB naming system.
    Added auto-updater.
     
    Version 1.8.8 [CB 1.3.2/CB 1.4.2]
    Added permissions "OpenInv.openself".
     
    Version 1.8.7 [CB 1.3.1-R1]
    Added /openender <player>
    permissions, added "OpenInv.editinv", "OpenInv.openender", "OpenInv.editender".
     
    Version 1.8.6 [CB 1.3.1]
    Updated to 1.3.1. Not only works with 1.3.1.
     
     
    Version 1.8.5 [CB 1.2.5-R4]
    Fixed all problems related to Offline OpenInv (including inventory not updating AND/OR inventory being emptied on some occasions).
    Updated Metrics module to R5.
     
    Version 1.8.4 [CB 1.2.4-R0.1]
    Updated to MC 1.2.4.
     
    Version 1.8.3 [1.1-R6/CB 1.2.3-R0.1]
    Fixed perms not working.
     
    Version 1.8.2 [1.1-R6/CB 1.2.3-R0.1]
    New permissions system (removed support for old perms).
     
    Version 1.8.1 [1.1-R6/CB 1.2.3-R0.1]
    Updated to 1.1-R6.
     
    Version 1.7.5 [1.1-R3]
    Fixed Metrics add-on error on startup.
     
    Version 1.7.4 [1.1-R3]
    Fixed offline openinv being case sensitive.
     
    Version 1.7.3 [1.1-R3]
    New CB events.
     
    Version 1.7.2 [1.0.0-R1/1.1-R1]
    CraftBukkit refactoring. Fix the Exception caused by that.
     
    Version 1.7.1 [1.0.0-R1/1.1-R1]
    Statistics.
    Official CB1.1-R1 support.
    Still backward compatible (with 1.0.1-R1).
     
    Version 1.6.6 [1.0.1-R1]
    Help menu (/openinv ?).
    Code re-organizing.
    AnyChest now toggle-able.
     
    Version 1.6.5 [1.0.1-R1]
    Fix for silentchest + spout error.
     
    Version 1.6.4 [1.0.1-R1]
    Silent chest opening, no animation, no sound, use /silentchest to toggle on/off.
     
    Version 1.6.3 [1.0.1-R1]
    Switched toolbar from top to bottom.
    Added armor slots.
     
    Version 1.6.2 [1.0.1-R1]
    Added a fix for Offline Openinv.
     
    Version 1.6.1 [1550]
    Fixed inventory update bug that everyone was having!
    Updated for Minecraft 1.0.
     
    Version 1.5.2 [1185]
    Offline openinv bugfix.
     
    Version 1.5.1 [1185]
    OFFLINE OPENINV IMPLEMENTED.
     
    Version 1.4.6 [1118-1160]
    Fix conflict of anychest with other plugin.
     
    Version 1.4.5 [1118-1160]
    Fix for previous update not closing chests.
     
    Version 1.4.4 [1118-1160]
    Now allows opening of chests that are blocked by solid blocks on top!
    Use "OpenInv.anychest" for permission node.
     
    Version 1.4.3 [1118-1160]
    Toggle should now be saved between server restarts.
    Added configuration file.
    Configure the item to use instead of a stick be default.
     
    Version 1.4.2 [1118-1160]
    Fixed a character limit problem.
     
    Version 1.4.1 [1118-1160]
    Updated for 1.8.
     
    Version 1.3.3 [953+]
    Cross world openinv disabled! Use permissions node 'OpenInv.crossworld' to allow cross-world openinv.
     
    Version 1.3.2-test [818+]
    Try fixing compatibility problem.
     
    Version 1.3.1 [818+]
    Fixed for 818.
    Only works for 1.6+ (CraftBukkit RB 818).
     
    Version 1.2.3 [803-]
    Sign quick access: use second line for "[openinv]" (without quotes) and third line for target name.
    Use this for 1.5 versions.
     
    Version 1.2.2
    PERMISSIONS NODES CHANGE: please read permissions section.
    new "OpenInv.exempt" and "OpenInv.override" feature.
     
    Version 1.2.1
    MAJOR BUGFIX: inventory not updated correctly, especially after a death/respawn.
     
    Version 1.1.1
    New feature: /searchive Item Amount.
     
    Version 1.1.0
    New feature: sticks + toggle openinv (explainations on top).
     
    Version 1.0.3
    Fixed history not saved correctly.
    Fixed inventory access to respawned players.
     
    Version 1.0.2
    use the command without argument opens the last accessed person's inventory .
     
    Version 1.0.1
    Initial Release.
    
    Support the developer: [​IMG]
     
  2. Offline

    spunkiie

    There's a /command or I just right click ?
     
  3. Offline

    lishid

    Thanks, I was forgetting it...
     
  4. Offline

    JWhy

    Does this spawn a chest linked to the Players inventory or how does it work?
     
  5. Offline

    lishid

    this casts the player's inventory into a openable chest and makes the admin open it.

    New update: v1.0.2

    added the feature use the command without argument opens the last accessed person's inventory .

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 14, 2016
  6. Offline

    Sabinno

    So let me get this straight.
    Does it remove the users' inventories and store them in a chest?
    Or does it COPY the inventory?
    If it copies it, and you edit the inventory in the chest, will it do the same to the other player's inventory?
    -Sabinno-
     
  7. Offline

    lishid

    No, you can access anyone's inventory AS a chest, doing transfers with it.

    Every update you do will appear in his inventory and every update he does will go to your end, real time.
     
  8. Offline

    Sabinno

    Thanks for the quick response, I'm definitely installing this on my server!
    -Sabinno-
     
  9. Offline

    lishid

    You're welcome. I've attached an image for further explanation.
     
  10. Offline

    cholo71796

    This is an awesome plugin, but its purpose should be clarified- you say it allows you to
    but you probably mean that you can open the player's inventory as if it were a chest.
     
  11. Offline

    lishid

    Oops... thanks... I probably messed up the description lol
     
  12. Offline

    cholo71796

    Sometimes I get this:
    Code:
    2011-04-30 23:53:16 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'openinv' in plugin Scrap v1.0.2
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:37)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:85)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:255)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:677)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:640)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:634)
        at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:32)
        at net.minecraft.server.NetworkManager.a(NetworkManager.java:195)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:74)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:100)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:370)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:285)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    Caused by: java.lang.ClassCastException: net.minecraft.server.InventoryPlayer cannot be cast to lishid.openinv.utils.PlayerInventoryChest
        at lishid.openinv.commands.OpenInvPluginCommand.onCommand(OpenInvPluginCommand.java:73)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
        ... 12 more
    
     
  13. Offline

    Juze

  14. Offline

    lishid

    EDIT: found out that when people die, their inventory gets reset to a fresh new one, so i'll have to convert again.
    I will update when I'm done with another bugfix.
    Working on it as well as another bugfix...

    Done.

    New Update, with a few bugfixes...

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 14, 2016
  15. Offline

    cholo71796

    @lishid
    Did you have any idea why I was getting that error? Should it be fixed?
     
  16. Offline

    lishid

    Did you try 1.0.3? It should be fixed.
     
  17. Offline

    KakerZone

    This will be great for some servers that have a duplication bug. I will be using this (but I don't have a dupe bug).

    Thank you.
     
  18. Offline

    lishid

    Real useful :D
    You can change people's inventory without them knowing, and make them think it's a game bug...
     
  19. Offline

    MineralMC

    Holy crap.

    You've single-handedly covered my inventory spying/correction needs. I'm impressed!

    I'm assuming it isn't possible to do a 'read only' version of the command for my moderators? What about a text output of the various items a user is holding?

    Later down the line, perhaps a search function for specific block types, that returns a list of players who have those types in their current inventory?
     
  20. Offline

    lishid

    Great suggestions, I'll see what i can do, although... it would be a little hard to do a read-only version since I would have to override all the chest functions with a check for the owner... hm....
    I dont think it will be possible without problems, But I can do one that will copy the inventory instead so that changes are not propagated to the actual user, if the potential problem of item duping is not a big deal for your moderators (since they will be able to take stuff away).

    I'm working on a feature where you can open a player's inventory just by clicking on him with a stick or something :p

    Text outputs are available with a few other plugins, i dont remember the names though... also, Essentials make you have the player's inventory temporarily, so i guess that could fit your needs?

    Returning a list of people who have a specific block is easy (but could consume many system resources from the server? depending on the number of people), I will add it to the TODO list.
     
  21. Offline

    MineralMC

    Closest I've got to that was Confess, but it just lists the items rather than tabulating them, so you don't get to see every last item. I may just suggest those two features to the Confess author, and keep this plugin for myself and my two super moderators.

    Still, really impressed. :)
     
  22. Offline

    Nytemare3701

    Bug: Wipes player inventories on login.
    CB 740
     
  23. Offline

    lishid

    Can you be more specific? I will checkout what is wrong with the coding, but it's likely to be a conflict between plugins...

    list the plugins you're using plz.

    (PS anyone else have this problem?)
     
  24. Offline

    vildaberper

    Not ot be that guy, but this plugin can be coded with like 1 row. xD

    Code:
    ((CraftPlayer) ((Player) sender)).getHandle().a(((CraftPlayer) getServer().getPlayer(args[0])).getHandle().inventory);
     
  25. Offline

    lishid

    Nope, you wont be able to open inventory of players that are not close to you (like very close)
     
  26. Offline

    vildaberper

    Really?
    I just tried that code between two worlds.

    Edit: Seems to bu luck though, it wont work now. "/
     
  27. Offline

    lishid

    It started out to be something like that, but then I've made a few changes to the system, made a custom inventory to replace the one used, and a few methods have to be overriden.

    Well, I've worked for a few hours on it, and now I got the direct-access working.

    There is part of the code that replace the inventory on login and on respawn, but it should not affect anything ingame, unless another plugin is interfering with the process, but nevertheless, I will check my coding once i get to my home computer.

    Version 1.1.0

    • New feature: sticks + toggle openinv (explainations on top)

    NEW: Use command "/toggleopeninv" to toggle stick openinv explained below
    NEW: Stick openinv: hit any player with a stick, and you will open the player's inventory (toggle must be ON)
    NEW: Right click the air with a stick opens the last opened inventory (toggle must be ON)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 14, 2016
  28. Offline

    Nytemare3701

    I found the problem. It was another plugin being incompatible. Don't trouble yourself.
     
  29. Offline

    lishid

    scared me there lol, thanks for the heads up.

    Mind telling me which one? In case someone else have the same problem..

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 14, 2016
  30. Offline

    Nytemare3701

    Honestly, I've already forgotten. I run about 70 plugins, so incompatibility is common for me. My best guess would be the name changer I was using. I'm in the middle of hunting down a timing desync so reinstalling openinv is pretty low priority for me now.
     

Share This Page