]> git.lizzy.rs Git - minetest.git/blobdiff - src/serverlist.cpp
Remove no virtual dtor warnings, make MapgenParams contain actual NoiseParams
[minetest.git] / src / serverlist.cpp
index 3dfc79f50cb4067a093308d4b7941ca8d0b1f70a..ea5a616c249d8bad66cd9792b16d708f6a270ab5 100644 (file)
@@ -38,10 +38,12 @@ std::string getFilePath()
 {
        std::string serverlist_file = g_settings->get("serverlist_file");
 
-       std::string rel_path = std::string("client") + DIR_DELIM
-               + "serverlist" + DIR_DELIM
-               + serverlist_file;
-       std::string path = porting::path_share + DIR_DELIM + rel_path;
+       std::string dir_path = std::string("client") + DIR_DELIM
+               + "serverlist" + DIR_DELIM;
+       fs::CreateDir(porting::path_user + DIR_DELIM + "client");
+       fs::CreateDir(porting::path_user + DIR_DELIM + dir_path);
+       std::string rel_path = dir_path + serverlist_file;
+       std::string path = porting::path_user + DIR_DELIM + rel_path;
        return path;
 }
 
@@ -51,7 +53,7 @@ std::vector<ServerListSpec> getLocal()
        std::string liststring;
        if(fs::PathExists(path))
        {
-               std::ifstream istream(path.c_str(), std::ios::binary);
+               std::ifstream istream(path.c_str());
                if(istream.is_open())
                {
                        std::ostringstream ostream;
@@ -232,7 +234,7 @@ 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) {
+void sendAnnounce(std::string action, u16 clients, double uptime, std::string gameid) {
        Json::Value server;
        if (action.size())
                server["action"]        = action;
@@ -250,6 +252,9 @@ void sendAnnounce(std::string action, u16 clients) {
                server["pvp"]           = g_settings->getBool("enable_pvp");
                server["clients"]       = clients;
                server["clients_max"]   = g_settings->get("max_users");
+               if (uptime >=1) server["uptime"] = (int)uptime;
+               if (gameid!="") server["gameid"] = gameid;
+               
        }
        if(server["action"] == "start")
                actionstream << "announcing to " << g_settings->get("serverlist_url") << std::endl;