Co-authored-by: MD <1917406+mdcfe@users.noreply.github.com>
This PR fixes various issues with NPC accounts:
- Fixes some NPC account names not being sanitised
- Fixes wrong keys being used when manually generating a NPC account file
- Adds some debug logging to `UserMap` name lookups
This bug occurs when a player has joined before EssentialsX was installed and a player account creation is requested through Vault while they are offline.
Fixes#4195
Removed an extraneous name->uuid check
This check swallowed any warnings spit out by UserMap#trackUUID causing problems
for plugins which didn't check the success of this method and thus leading to
possible stack overflow exceptions or other unexpected behavior
Actually save accounts created with VaultEconomyProvider#createPlayerAccount
Complete oversight as I was under the impression tracking the UUID would create
the files for us.
This commit:
- Implements a new provider for VaultAPI's `Economy`
- The legacy provider built into Vault uses player names, and has not changed since Vault was invented in 1864.
- This properly supports UUIDs and works more predictably with EssentialsX.
- Replaces the Register method economy abstraction layer abstraction layer with a new `EconomyLayer` economy abstraction layer abstraction layer.
- This opens the pathway for future economy abstraction layers to be supported.
- This change also removes dubiously-licensed code from the project.
For users encountering userdata issues on this build, see this FAQ entry:
https://github.com/EssentialsX/Essentials/issues/3956#issuecomment-779254544Fixes#4110.
Closes#3344.
Closes#2401.
This commit improves the logging of a few edge cases that can lead to loss of userdata:
- Third-party plugins forcing creation of a NPC account which could not be found on the usermap, even if the account file exists
- UserMap#trackUUID being called with a conflicting UUID but replace set to false