-std::string serialize(std::vector<ServerListSpec> serverlist)
-{
- std::string liststring;
- for(std::vector<ServerListSpec>::iterator i = serverlist.begin(); i != serverlist.end(); i++)
- {
- liststring += "[server]\n";
- liststring += (*i)["name"].asString() + "\n";
- liststring += (*i)["address"].asString() + "\n";
- liststring += (*i)["port"].asString() + "\n";
- liststring += (*i)["description"].asString() + "\n";
- liststring += "\n";
- }
- return liststring;
-}
-
-std::string serializeJson(std::vector<ServerListSpec> serverlist)
-{
- Json::Value root;
- Json::Value list(Json::arrayValue);
- for(std::vector<ServerListSpec>::iterator i = serverlist.begin(); i != serverlist.end(); i++)
- {
- list.append(*i);
- }
- root["list"] = list;
- Json::StyledWriter writer;
- return writer.write( root );
-}
-
-
-#if USE_CURL
-void sendAnnounce(std::string action, const std::vector<std::string> & clients_names, double uptime, u32 game_time, float lag, std::string gameid, std::vector<ModSpec> mods) {
- Json::Value server;
- if (action.size())
- server["action"] = action;
- server["port"] = g_settings->get("port");
- server["address"] = g_settings->get("server_address");
- if (action != "delete") {
- server["name"] = g_settings->get("server_name");
- server["description"] = g_settings->get("server_description");
- server["version"] = minetest_version_simple;
- server["url"] = g_settings->get("server_url");
- server["creative"] = g_settings->get("creative_mode");
- server["damage"] = g_settings->get("enable_damage");
- server["password"] = g_settings->getBool("disallow_empty_password");
- server["pvp"] = g_settings->getBool("enable_pvp");
- server["clients"] = (int)clients_names.size();
- server["clients_max"] = g_settings->get("max_users");
- server["clients_list"] = Json::Value(Json::arrayValue);
- for(u32 i = 0; i < clients_names.size(); ++i) {
- server["clients_list"].append(clients_names[i]);
+ if (action == AA_START) {
+ server["dedicated"] = dedicated;
+ server["rollback"] = g_settings->getBool("enable_rollback_recording");
+ server["mapgen"] = mg_name;
+ server["privs"] = g_settings->get("default_privs");
+ server["can_see_far_names"] = g_settings->getS16("player_transfer_distance") <= 0;
+ server["mods"] = Json::Value(Json::arrayValue);
+ for (const ModSpec &mod : mods) {
+ server["mods"].append(mod.name);