This should prevent accidentally adding info for skills that do not exist.
Improved API consistency.
Optimized imports
Renamed BaseUser to BasicUser
LevelRestrictor should be more flexible now.
Restrictions API finally seems suitable.
Changed DependencyHandler to use a try with resources.
Removed unnecessary semicolon
Added class stubs for Restrictions API
Minor api implementations, moved LPlayer to library package.
Introduced some self type generics to improve API consistency and allow for easier chaining of method calls.
Renamed SkillManager to SkillHandler for consistency
Added getInstance method to SkillHandler
Added override annotation for lPlayer.getLClass method
Created LClassHandler and RaceHandler
Made the user info maps use the object instance as key

Not sure why I changed this in the first place. Shouldn't be any issues.
Setup maven modules to separate core from library.
Added API support for secondary classes
Changed the way restriction maps are stored.

Also using generics to keep API consistency
IDRestrictable interface is no longer necessary.