Class EssentialsUpgrade
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
void
void
void
void
void
void
void
getFakeLocation
(org.spongepowered.configurate.CommentedConfigurationNode config, String path) void
void
This migration cleans up unused files left behind by the chaos resulting from Vault's questionable economy integration, and upstream Essentials' rushed and untested 1.7.10 UUID support.void
void
static void
uuidFileConvert
(IEssentials ess, Boolean ignoreUFCache)
-
Field Details
-
YML_FILTER
-
-
Method Details
-
uuidFileConvert
-
updateRandomTeleport
public void updateRandomTeleport() -
convertMailList
public void convertMailList() -
convertStupidCamelCaseUserdataKeys
public void convertStupidCamelCaseUserdataKeys() -
purgeBrokenNpcAccounts
public void purgeBrokenNpcAccounts()This migration cleans up unused files left behind by the chaos resulting from Vault's questionable economy integration, and upstream Essentials' rushed and untested 1.7.10 UUID support. Both of these have been fixed in EssentialsX as of 2.18.x and 2.19.x respectively, but the leftover userdata files can reach into the tens of thousands and can cause excessive memory and storage usage, so this migration relocates these files to a backup folder to be removed by the server owner at a later date.To quote JRoy, who suffered immensely while trying to debug and fix various related issues:
"Essentials decided when adding its initial support for UUIDs, it wanted an implementation which would cause eternal pain and suffering for any person who dared touch any of the code in the future. This code that was made was so bad, it managed to somehow not maintain any actual UUID support for any external integrations/plugins. Up until 2.19.0 and 2.18.0 respectively, our Vault integration and entire Economy system was entirely based off username strings, and thanks to Vault being a flawed standard, for some reason exposes account create to third party plugins rather than letting the implementation handle it. That doesn't seem like a huge problem at the surface, but there was one small problem: whoever made the Vault integration for Essentials suffered a stroke in the process of creating it. The implementation for the createAccount method, regardless of whether it was an actual player or an NPC account (which the Vault spec NEVER accounted for but plugins just have to guess when to support them), it would always create an NPC account. This caused any plugin integrating with Vault, creating NPC accounts for pretty much every single player on the server. It still, to this day, amazes me how nobody saw this code and didn't die without rewriting it; Or how everybody simply didn't stop using this plugin because how awful that godforsaken code was. Anyways, this upgrade does its best to delete NPC accounts created by the horrible economy code, as any operation which loads all user data into memory will load all these NPC accounts and spam the console with warnings."
-
convertIgnoreList
public void convertIgnoreList() -
convertKits
public void convertKits() -
getFakeLocation
-
banFormatChange
public void banFormatChange() -
generateUidCache
public void generateUidCache() -
upgradeLang
public void upgradeLang() -
beforeSettings
public void beforeSettings() -
preModules
public void preModules() -
afterSettings
public void afterSettings()
-