More Progress
Server location data is now relayed as part of a player's "presence" data. This will store and send data about the type of server, and if applicable then the ip and port. A player's status will show whether they're in Singleplayer, Hosting/playing on a LAN server or Hosting/playing on a web server. You can only use the join functionality if it's a web server - I don't really want to mess around with getting LAN to work too.
At the moment there's a slightly annoying issue with joining people's servers from the client as it's not possible to tell immediately whether the server requires a password or not. I'm going to either have to force another request to be made to the chat server to check this, or just make an api call. Either way it's annoying but manageable.