This fixes a bug with a bad actor getting banned with a blank client UUID and then preventing anyone from joining the server due to a lack of UUID on the Connect Request ban check.
- The player will only finish the handshake once they spawn their player, a normal client would always do this eventually.
- They cannot chat, even if they request world data but just not spawn their player.
- Other clients will not be notified of their join/leave in both cases (dont request WD or do but dont spawn)
- And most importantly, they do not show on the in game player list but still show on the server console /playing cmd.
This applies https://github.com/Pryaxis/TShock/pull/3018 as a patch per @punchready because they deleted the head repository so that we can't merge it and none of the git objects have valid refs anymore on the command line and we can't merge it on the gui.
The player being CC'd does not cause any issues for us if SSC isn't
enabled, so we can relax it's restriction.
This also allows the `RequireLogin` config option to function usefully
again, as it would disable the player, causing them to be CC'd until
they logged in, creating a vicious cycle.
We needed to modify `NetItem` to know that these new inventory now
exist.
`PlayerData` can now re/store these items, and properly sync them. It
also now knows of the player's currently selected index, and how to sync
it.
This replaces several strings with i18n-friendly variants so that they
can be internationalized.
Sometimes, the command in English has been reworded, because it was
dumb.
I stopped at GrabUserUserInfo, mostly because I was tired. My
rationale/thinking is that rather than doing a huge commit with the
entire file (which may take a while to build up) it would be better to
get more strings to translators faster. This is because these strings,
in particular, are some of the most important ones to translate.