I'm from Russia, sorry for the modest knowledge of English
Maybe I'm wrong, but something tells me that in the class HandlerList(org.bukkit.event) There is excessive synchronization(where it should not be), which can result in poor performance, field handlers (
private volatile RegisteredListener[] handlers = null;
) which is declared as volatile. Such fields can be confusing because access to the array itself follows the rules for volatile fields, but access to the array content does not. the
private static ArrayList<HandlerList> allLists = new ArrayList<>();
field is static, why synchronize it?(I could be wrong)