UUIDAPISo as we all know with the upcoming legalization of name changing by Mojang, we're all of the sudden in a huge bind; "What will happen to all my bans/donates/whatevers!" Well, here's your solution! An Async EventBased UUID Caching and Saving API! So what's it do? Well, first off, when UUIDAPI loads for the first time, it will go through all the players that have played on your server in the past, cache and save those, from this point on, it will only cache new player joins.
A lightweight UUID Cache and Get Library for Developers!
UUID API is 99% Async complete with 3 sets of execution threads, a single EventExecution thread where all CompletionTasks execute in, a single file save thread keeping files sync, then a default 12 worker threads that do the getting of UUID's whether it be via Mojang's API or a file. This use of Async prevents UUIDAPI from causing any performance loss from your server, ensuring your players a nice place to play, no matter how much is going on in the background.
For developers, to get into UUIDAPI, simply static access into, UUIDAPI.getUuidapi(); From here, you will find a few more methods, getMojangRepository() -> Returns the ProfileRepository provided by Mojang in order to retrieve accounts; getUUID(String playerName, CompletionTask onGet); -> This will either get the cached UUID or get the players UUID from Mojang and call the onUUIDGet() method withen the CompletionTask. getAllStoredUUIDS() -> This will return all UUID's as an entrySet, Key being the PlayerName, Value being the UUID. getPlayerName(final String uuid, final CompletionTask onGet); -> This will go through getAllStoredUUIDS() and call onGet for every matching UUID. The source is also available on github!
Hope you enjoy! If you have questions, feel free to yell at me in my IRC channel. (Check my signature.)