- Introduce registration executors: one for each registration variant; each extending class implements one registration variant and worries about that method's details only
- AsyncRegister receives the player and a registration executor
Mostly minor changes:
- Add deprecated javadoc tag on deprecated members
- Reduce duplication (FlatFile, BackupService, ...)
- Make methods static
- Reduce size of anonymous classes
- Replace name with displayName in PermissionsSystemType (avoids confusing with Enum name())
- Tabs to spaces
- Merge if statements
Code from third-party sources (BCryptService, BinTools, PHPBB) not modified.
- authme.cache to authme.data
- Rename PlayerData to LimboPlayer to match with LimboCache
- Move authme.converter to authme.datasource.converter
- Split output package into output and message
- Remove getX() methods on AuthMe: API classes will be instantiated by injection, too. It doesn't make sense to expose the constructor for the API classes anyway; we are internally responsible for creating these objects and having them created by third-party is not intended
- Remove deprecated annotations on individual methods on API -> whole class is deprecated, annotation on the class is enough
- Rename hash() to password()
- Add location(Location) builder method
- Replace usages of password(new EncryptedPassword(hash, salt)) to the more terse password(String, String) builder method
- Rename HashResult to EncryptedPassword to reflect its broader use
- Use EncryptedPassword in methods that require the hash and the salt, instead of passing them as strings separately
- Store EncryptedPassword as field in PlayerAuth; updatePassword() thus processes the entire data in the EncryptedPassword object
- For encryption methods with a separate salt, the hash is useless without the salt, so hash and salt should always be persisted and retrieved together