Maven's fine with it, but it is bad practice.
OpenInv still modifies plugin.yml in OpenInvPlugin. It should really be done via the Assembly Plugin, but it works and I am lazy.
Mostly based on Mbaxter's AbstractionExamplePlugin
Compiling OpenInv for a specific version is very easy - just compile the correct module.
Compiling for a set of versions is slightly more complex. You'll need to use a profile for the versions you want to compile. Provided profiles are latest, modern - versions 1.7.10+, and all. For more information, check out the Maven guide http://maven.apache.org/guides/introduction/introduction-to-profiles.html
This commit doesn't change anything with the plugin itself, but it makes it loads easier for people to maintain and compile their own version without destroying backwards compatibility.
* Implemented a universal cache for loaded players
* Reworked a significant amount of my API additions
* Simplified join/quit handling
* Cleaned up ISpecialEnderChest/ISpecialPlayerInventory implementations
* Fixed OpenInv.* permission not granting access to commands
Restored some old OpenInv behavior - Offline name partial completion.
Currently there's no minimum similarity to consider a match a success, and the first name with the same similarity will take precedence. As a result, you may see some very odd results on occasion.
Edits made to online players will still work. Edits made to offline players will work if they log in before the ISpecialPlayerInventory is unloaded (currently before the plugin unloads).
Closes#6
Refactored IPlayerDataManager to PlayerDataManager, it's no longer an interface.
Fixed a bug with players' online state initially being inverted
This took way more time than it was worth.
Converted line endings to Unix, some other trivial crap.
Thanks to Phoenix616 for already having a multi-version pom, it would have taken me much longer to figure out without a functional example.
The only legacy code which is not supported is that of the pre-versioned package era. I compiled a copy of Craftbukkit about 15 commits prior to the introduction of versioned packages, and NMS had already been fiddled with. Anyone who needs support for builds in that range can use an older OpenInv build instead, it's not like UUIDs are a big concern.
Among other things, these interface changes allow for supporting pre-UUID Minecraft versions again. I may eventually backport older versions, but I don't know that I'll be able to lay hands on old enough jars.
Removed static access
Renamed all methods to follow conventions
Anyone who can use it has to be able to run the command anyway. If they can run the command, they can use tab completion to automatically fill in anyone online's name. There's no need to keep around a bunch of deprecated code for a function I sincerely doubt anyone actually uses.
Players who haven't joined your server since the UUID conversion will have a null name. As a result, if you try to /openinv a player who *has* joined your server since then, the loop can break due to a NPE while checking other players. This null check should fix that problem.