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

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

     
  1. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    OpenInv - Open anyone's inventory as a chest! in real time! Works with offline players! Open EnderChests of any player via command!

    Version: v2.0.2

    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.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.0.2) CB1.4.5 up to CB1.5.2

    Legacy versions:
    Download OpenInv (1.8.8) CB1.3.x and CB 1.4.2
    Download OpenInv (1.8.5) CB1.1-R5, CB 1.2.5-R4
    Download OpenInv (1.7.5) CB 1.1-R3
    Download OpenInv (1.7.2) CB 1.0.1-R1
    Download OpenInv (1.5.2) MC Beta 1.8+
    Download OpenInv (1.3.3) MC Beta 1.7.3-

    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.0.1[CB 1.5.1]
    • Fixed player loading crash caused by CraftBukkit internal change.
    Code:
     
    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]

    This post has been edited 79 times. It was last edited by lishid May 7, 2013.
  2.  
  3. Offline

    spunkiie

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    There's a /command or I just right click ?
  4. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Thanks, I was forgetting it...
  5. Offline

    JWhy

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Does this spawn a chest linked to the Players inventory or how does it work?
  6. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    this casts the player's inventory into a openable chest and makes the admin open it.
  7. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    New update: v1.0.2

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

    Sabinno

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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-
  9. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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.
  10. Offline

    Sabinno

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Thanks for the quick response, I'm definitely installing this on my server!
    -Sabinno-
  11. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    You're welcome. I've attached an image for further explanation.
  12. Offline

    cholo71796

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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.
  13. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Oops... thanks... I probably messed up the description lol
  14. Offline

    cholo71796

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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
    
  15. Offline

    Juze

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
  16. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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...
  17. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
  18. Offline

    cholo71796

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    @lishid
    Did you have any idea why I was getting that error? Should it be fixed?
  19. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Did you try 1.0.3? It should be fixed.
  20. Offline

    KakerZone

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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.
  21. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Real useful :D
    You can change people's inventory without them knowing, and make them think it's a game bug...
  22. Offline

    MineralMC

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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?
  23. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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.
  24. Offline

    MineralMC

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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. :)
  25. Offline

    Nytemare3701

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Bug: Wipes player inventories on login.
    CB 740
  26. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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?)
  27. Offline

    vildaberper

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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);
  28. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Nope, you wont be able to open inventory of players that are not close to you (like very close)
  29. Offline

    vildaberper

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Really?
    I just tried that code between two worlds.

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

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    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.
  31. Offline

    lishid

    dev.bukkit.org profile:
    CFUSERNAME
    My Plugins (CFCOUNT)
    Well, I've worked for a few hours on it, and now I got the direct-access working.
    muggerfugger likes this.

Share This Page