Class EssentialsUpgrade


public class EssentialsUpgrade extends Object
  • Field Details


      public static final FileFilter YML_FILTER
  • Method Details

    • uuidFileConvert

      public static void uuidFileConvert(IEssentials ess, Boolean ignoreUFCache)
    • 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

      public Location getFakeLocation(org.spongepowered.configurate.CommentedConfigurationNode config, String path)
    • banFormatChange

      public void banFormatChange()
    • generateUidCache

      public void generateUidCache()
    • upgradeLang

      public void upgradeLang()
    • beforeSettings

      public void beforeSettings()
    • preModules

      public void preModules()
    • afterSettings

      public void afterSettings()