]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/serverlist.cpp
Masterserver show privs and js autoload
[dragonfireclient.git] / src / serverlist.cpp
index 908f048cb5624d422347a030fd81a5dbe569a750..fa2ddad1579d35d12434e01ed7cb94ef17d5b2e0 100644 (file)
@@ -194,11 +194,11 @@ static size_t ServerAnnounceCallback(void *contents, size_t size, size_t nmemb,
     //((std::string*)userp)->append((char*)contents, size * nmemb);
     return size * nmemb;
 }
-void sendAnnounce(std::string action, u16 clients, double uptime, std::string gameid, std::vector<ModSpec> m_mods) {
+void sendAnnounce(std::string action, const std::vector<std::string> & clients_names, double uptime, u32 game_time, std::string gameid, std::vector<ModSpec> mods) {
        Json::Value server;
        if (action.size())
                server["action"]        = action;
-       server["port"] = g_settings->get("port");
+       server["port"]          = g_settings->get("port");
        server["address"]       = g_settings->get("server_address");
        if (action != "delete") {
                server["name"]          = g_settings->get("server_name");
@@ -209,19 +209,25 @@ void sendAnnounce(std::string action, u16 clients, double uptime, std::string ga
                server["damage"]        = g_settings->get("enable_damage");
                server["password"]      = g_settings->getBool("disallow_empty_password");
                server["pvp"]           = g_settings->getBool("enable_pvp");
-               server["clients"]       = clients;
+               server["clients"]       = (int)clients_names.size();
                server["clients_max"]   = g_settings->get("max_users");
-               if (uptime >=1) server["uptime"] = (int)uptime;
-               if (gameid!="") server["gameid"] = gameid;
+               server["clients_list"]  = Json::Value(Json::arrayValue);
+               for(u32 i = 0; i < clients_names.size(); ++i) {
+                       server["clients_list"].append(clients_names[i]);
+               }
+               if (uptime >= 1)        server["uptime"]        = (int)uptime;
+               if (gameid != "")       server["gameid"]        = gameid;
+               if (game_time >= 1)     server["game_time"]     = game_time;
        }
 
        if(server["action"] == "start") {
                server["dedicated"]     = g_settings->get("server_dedicated");
+               server["privs"]         = g_settings->get("default_privs");
                server["rollback"]      = g_settings->getBool("enable_rollback_recording");
                server["liquid_finite"] = g_settings->getBool("liquid_finite");
                server["mapgen"]        = g_settings->get("mg_name");
-               server["mods"] = Json::Value(Json::arrayValue);
-               for(std::vector<ModSpec>::iterator m = m_mods.begin(); m != m_mods.end(); m++) {
+               server["mods"]          = Json::Value(Json::arrayValue);
+               for(std::vector<ModSpec>::iterator m = mods.begin(); m != mods.end(); m++) {
                        server["mods"].append(m->name);
                }
                actionstream << "announcing to " << g_settings->get("serverlist_url") << std::endl;