Open anyone's inventory as a chest, real-time!
Go to file
Adam 1bd7932cc5
Drop 1.8/1.15/1.16.3 support (#185)
With the recent uptick in requests for support by people running 1.12 who have recently updated past Java 9, I revisited the supported versions.

First, the "modern" versions: 1.15 is run by 2.9% of servers, 1.16.3 by 5%. Since all of these versions are supported to ease the transition of updating servers and servers have updated, there's no real reason to keep them around. It's a lot easier if you can update a plugin and just have it work on both versions rather than push all the plugin updates to master with the server update, but none of these versions have any reason for long-term support.

Regarding heavily outdated server software: As of the time of writing, 1.8 and 1.12 have market shares of 8.6% and 8.5% of servers respectively.
Regarding 1.8: 1.8 support is already a bit wonky - with the changes made to inventory names, it's not (easily) possible to bridge the gap, and future changes will make that more and more difficult. People use 1.8 because they disliked the 1.9 combat changes, but there are plugins that fully rework combat to how it used to be. I have yet to hear a compelling argument that cannot be resolved with plugins. In the interest of my own sanity (handling and backporting the inventory name change in particular was a real humdinger) I will no longer be backporting changes to 1.8.
Regarding 1.12: I am honestly not sure why people are not updating. I get it, 1.13 and the flattening was a rough transition, but pretty much every developer active at the time bridged the gap. If your server is heavily dependent on some software only available at that time, you can live with other software available at that time. At the time of 1.12's release, Java 9 was not released. Either update your server, downgrade Java, or fork OpenInv and backport Java 9 support yourself.
2021-03-16 09:34:41 -04:00
.github/workflows Drop 1.8/1.15/1.16.3 support (#185) 2021-03-16 09:34:41 -04:00
api Drop 1.8/1.15/1.16.3 support (#185) 2021-03-16 09:34:41 -04:00
assembly Bump version to 4.1.6-SNAPSHOT for development 2020-11-03 18:32:43 -05:00
internal Drop 1.8/1.15/1.16.3 support (#185) 2021-03-16 09:34:41 -04:00
plugin Drop 1.8/1.15/1.16.3 support (#185) 2021-03-16 09:34:41 -04:00
.gitignore Fix up .gitignore a bit 2020-11-15 13:25:50 -05:00
LICENSE.txt Bug fix and changes 2015-06-23 13:31:26 +10:00
pom.xml Bump version to 4.1.6-SNAPSHOT for development 2020-11-03 18:32:43 -05:00
README.MD Allow spectators to edit inventories 2020-09-15 13:35:04 -04:00

About

OpenInv is a Bukkit plugin which allows users to open and edit anyone's inventory or ender chest - online or not!

Features

  • OpenInv: Open anyone's inventory, even if they're offline.
    • Read-only mode! No edits allowed! Don't grant the permission OpenInv.editinv
    • Cross-world support! Don't grant OpenInv.crossworld
    • No self-opening! Don't grant OpenInv.openself
    • Drop items as the player! Place items in the unused slots to the right of the armor to drop them
  • OpenEnder: Open anyone's ender chest, even if they're offline.
    • Read-only mode! No edits allowed! Don't grant OpenInv.editender
    • Cross-world support! Don't grant OpenInv.crossworld
    • No opening others! Don't grant OpenInv.openenderall
  • SilentContainer: Open containers without displaying an animation or making sound.
  • AnyContainer: Open containers, even if blocked by ocelots or blocks.

Commands

Command Aliases Description
/openinv [player] oi, inv, open Open a player's inventory. If unspecified, will select last player opened or own if none opened previously.
/openender [player] oe Open a player's ender chest. If unspecified, will select last player opened or own if none opened previously.
/searchinv <item> [minAmount] si Lists all online players that have a certain item in their inventory.
/searchender <item> [minAmount] se Lists all online players that have a certain item in their ender chest.
/searchenchant <[enchantment] [MinLevel]> searchenchants Lists all online players with a specific enchantment.
/anycontainer [check] ac, anychest Check or toggle the AnyContainer function, allowing opening blocked containers.
/silentcontainer [check] sc, silentchest Check or toggle the SilentContainer function, allowing opening containers silently.

Permissions

Node Description
OpenInv.* Gives permission to use all of OpenInv.
OpenInv.openinv Required to use /openinv.
OpenInv.openself Required to open own inventory.
OpenInv.editinv Required to make changes to open inventories.
OpenInv.openonline Allows users to open online players' inventories. For compatibility reasons this is granted by the nodes OpenInv.openinv and OpenInv.openender.
OpenInv.openoffline Allows users to open offline players' inventories. For compatibility reasons this is granted by the nodes OpenInv.openinv and OpenInv.openender.
OpenInv.openender Required to use /openender.
OpenInv.editender Required to make changes to open ender chests.
OpenInv.openenderall Allows users to open others' ender chests. Without it, users can only open their own.
OpenInv.exempt Prevents the player's inventory being opened by others.
OpenInv.override Allows bypassing of the exempt permission.
OpenInv.crossworld Allows cross-world usage of /openinv and /openender.
OpenInv.search Required to use /searchinv and /searchender.
OpenInv.searchenchant Required to use /searchenchant.
OpenInv.anychest Required to use /anychest.
OpenInv.any.default Cause AnyContainer to be enabled by default.
OpenInv.silent Required to use /silentcontainer.
OpenInv.silent.default Cause SilentContainer to be enabled by default.
OpenInv.spectate Allows users in spectate gamemode to edit inventories.

For Developers

To compile, the relevant Craftbukkit/Spigot jars must be installed in your local repository using the install plugin. Ex: mvn install:install-file -Dpackaging=jar -Dfile=spigot-1.8-R0.1-SNAPSHOT.jar -DgroupId=org.spigotmc -DartifactId=spigot -Dversion=1.8-R0.1-SNAPSHOT

To compile for a single version, specify the NMS revision you are targeting: mvn -pl <NMS module> -am clean install

To compile for a set of versions, you'll need to use a profile. The only provided profile is all. Select a profile using the -P argument: mvn clean package -am -P all

For more information, check out the official Maven guide.

The final file is target/OpenInv.jar

License

Copyright (C) 2011-2020 lishid. All rights reserved.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, version 3.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.