- 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]);
+ server["action"] = aa_names[action];
+ server["port"] = port;
+ if (g_settings->exists("server_address")) {
+ server["address"] = g_settings->get("server_address");
+ }
+ if (action != AA_DELETE) {
+ bool strict_checking = g_settings->getBool("strict_protocol_version_checking");
+ server["name"] = g_settings->get("server_name");
+ server["description"] = g_settings->get("server_description");
+ server["version"] = g_version_string;
+ server["proto_min"] = strict_checking ? LATEST_PROTOCOL_VERSION : SERVER_PROTOCOL_VERSION_MIN;
+ server["proto_max"] = strict_checking ? LATEST_PROTOCOL_VERSION : SERVER_PROTOCOL_VERSION_MAX;
+ server["url"] = g_settings->get("server_url");
+ server["creative"] = g_settings->getBool("creative_mode");
+ server["damage"] = g_settings->getBool("enable_damage");
+ server["password"] = g_settings->getBool("disallow_empty_password");
+ server["pvp"] = g_settings->getBool("enable_pvp");
+ server["uptime"] = (int) uptime;
+ server["game_time"] = game_time;
+ server["clients"] = (int) clients_names.size();
+ server["clients_max"] = g_settings->getU16("max_users");
+ server["clients_list"] = Json::Value(Json::arrayValue);
+ for (std::vector<std::string>::const_iterator it = clients_names.begin();
+ it != clients_names.end();
+ ++it) {
+ server["clients_list"].append(*it);