These were intended to make it possible to access these settings
in the MT settings UI. However, apparently it's not possible to
have nil as a default, and MT throws warnings in this scenario.
Remove these settings until that's properly supported.
If a player quits before agreeing to the terms, and gets added to
the purge queue, but then reauths immediately, they can get
re-purged before they finish emerging, causing an assert fail on
trying to record their last login time.
If a player re-registers, immediately remove them from the purge
retry queue, so their login time can safely be recorded.
Also, if the server shuts down with incomplete players in the
"lobby", then add them all to the purge queue too.
It seems like auth was being purged, but not player data.
I found 2 possible issues:
- The "cache" table was having keys removed while it was being
iterated, which could cause skipped pairs.
- I noticed a delay in player data being written to the database,
so I wonder if write-behind player data was being inserted
after the deletion was attempted.
The net effect was that player auth data was apparently being
purged reliably, but player character data was being left behind
and cluttering up the database.
To try to fix this, fix the table mutation/iteration conflict,
and schedule multiple deletion retries (for about 15 seconds) to
ensure we really get it.
These are all based on automated detection (intercept the minetest
settings metatable methods) and lack any useful documentation, and
may be incomplete (e.g. missing keys that are only discovered at
runtime based on specific actions).
Eventually these will be filled out and used to document settings,
and make it easier to manage settings in the MT Settings UI.
Instead of maintaining the short description of each sub-mod
manually in a giant README file, distribute the short descriptions
into each relevant mod, and then build the README listings
automatically at deploy time.
This should:
- Make it harder to forget to add/remove mods in the list
- Prevent them from being out of alphabetical order
- Ensure each mod has a description for in-menu use
Each server can now setup unique per-server
per-player hash keys for the "agree to MOTD"
step to ensure that players actually have to
open the MOTD and at least find their
personal key before they can agree.