The purpose of this injector is to allow tags applied to specific plugins to be accessed without necessarily having to have the jar in our code or another plugin, thus interconnecting plugins without so much dependency, just the player.
Why is the player the key to this data? Well, actually anything can be the key, as long as it's represented by a String, which is why we use player names by default.
Why should I use this injector? Well, I think the question is, why shouldn't I use it, and it's quite complicated to answer. The purpose of the injector is clear, to reduce dependencies, so how you use it is up to you.
What is the capacity of this injector? The truth is that I don't know, I faithfully believe that this injector has unimaginable powers, it's really something useful that I use in personal projects, there's still a lot to improve.
I have a code where I need to add data about a player's Island, in this player, I want other plugins to access this, but I don't want them to need to have the jar.
I particularly recommend that you use exactly the specific type to get from a key, if there is nothing it will return exactly nothing of this type, something like 0 or false.
This is a very useful function, imagine that one fine day, you just say, I don't want the cache to receive new data or modifications, just don't.
* Please just treat this injector well, it's a powerful tool in the hands of a good developer.