Wipe all TotalFreedomMod player data when moving from 2021.06 to 2021.09

  • Before you get out your pitchforks, let me explain why I am suggesting this. I understand that a solution like this, in all likelihood, will piss a lot of people off, and I don't blame you. This is a rather drastic change, and I really didn't want to suggest something like this. This solution is not in any shape or form intended to inconvenience players on here, but to resolve a technical issue that would allow us to expedite migrating to UUIDs for player data.

    The implementation

    All player data in the TotalFreedomMod will be backed up, and then wiped. Everyone will be at a clean state, but can request to have their coins, shop items, and other types of data restored manually. In return, however, we will get a player data system with exponentially better stability. No more marking regular players as impostors when you use a different IP. No more losing player data when you change usernames. No more Discord verification.

    Other solutions I've considered

    Before coming to this solution, I had considered some other options that would do the same thing and keep player data automatically, however I realized that these solutions weren't viable for one reason or another.

    Converting player data individually on join

    This solution sounds feasible at a first glance, but it too has its fair share of problems. The main one is simple: multiple lookups would need to be performed on join if a player has no valid player data, which is dangerously bad for performance.

    Converting all player data on startup

    I tested this method using an older copy of the database used by the server, but found that attempting to get the UUID of a player using a name in itself is problematic, which make this approach far from viable.

    1. It's unreliable, as Spigot will automatically generate one (which won't actually link to a valid account) if there is no Minecraft account with the name.
    2. There is no way to get UUIDs of players using past usernames, meaning once you've changed your name, that name will return a "Not Found" error until someone takes the name.
    3. Spigot takes a long ass time to get player data for nonexistent accounts, which would cause the conversion process as a whole to take literal hours.

    image.png

  • Quote

      videogamesm12 No more marking regular players as impostors when you use a different IP. No more losing player data when you change usernames. No more Discord verification.

    While I accept these are good changes and I would like to see all of these, what would be the repercussions of the purge?

    Patrolling the Mojave almost makes you wish for a nuclear winter.

  • Quote

      videogamesm12 Everyone will be at a clean state, but can request to have their coins, shop items, and other types of data restored manually.

    i mean the economy could do with a final reset anyway but i hope more things are added to the shop before that happens but stances might have changed

    Quote

      videogamesm12 All player data in the TotalFreedomMod will be backed up,

    will this be able to be viewed by us by any chance, i dont want to get fucking swayed into giving people more then they had

    assrix, assryx, asterisk, *

    awesomeist tf blokey

  •   videogamesm12 That's all information that can be, in the worst case scenario, easily stored for later, in the likes of screenshots or admins saving their loginmessage command on a text file for after a purge.

    I think a quick cost benefit analysis tells me to vouch.

    Patrolling the Mojave almost makes you wish for a nuclear winter.

  • Quote

      videogamesm12 Converting player data individually on join
    This solution sounds feasible at a first glance, but it too has its fair share of problems. The main one is simple: multiple lookups would need to be performed on join if a player has no valid player data, which is dangerously bad for performance.

    Have you tried to run this task asynchronously?

  •   characterslimits You couldn't do that anyway as the player data is required as soon as the player actually is in game for things like login messages so async wouldn't help I don't think.

    Wild1145

    Network Owner at TotalFreedom

    Managing Director at ATLAS Media Group Ltd.

    Founder & Owner at MastodonApp.UK