I do not normally provide input as I often do not care about other resources. However, this is fairly new and has lots of potential to be super helpful for server owners and developers alike.
-
I simply have 2 suggestions which both have the potential to greatly increase plugin performance.
-
1. Instead of using AsyncPlayerChatEvent in PlayerChat.java, it is strongly recommended to use the newly available ConversationAPI. This handles communication between a player and a plugin rather than relying on chatting events and other plugins being able to parse your chat data as well. The docs explain this pretty well:
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/conversations/package-summary.html
-
2. You have lots of classes using private/public static HashMaps. Although this makes data very easy to manipulate from other classes, this is not the most efficient way to use static and could be coined as 'static abuse'. The best way is to make a single instance of a class or specific class and pass them around to other classes. This is often done in the onEnable method of a plugin passing instances to each other if required. If you have confusion about this, I strongly recommend this resource:
https://www.spigotmc.org/threads/solved-static-abuse.197572/