1bd7932cc5
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. |
||
---|---|---|
.github/workflows | ||
api | ||
assembly | ||
internal | ||
plugin | ||
.gitignore | ||
LICENSE.txt | ||
pom.xml | ||
README.MD |
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
- Read-only mode! No edits allowed! Don't grant the permission
- 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
- Read-only mode! No edits allowed! Don't grant
- 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/>.