|
@@ -280,8 +280,8 @@ int ModApiMainMenu::l_get_favorites(lua_State *L) |
|
|
{ |
|
|
std::string listtype = "local"; |
|
|
|
|
|
if (!lua_isnone(L,1)) { |
|
|
listtype = luaL_checkstring(L,1); |
|
|
if (!lua_isnone(L, 1)) { |
|
|
listtype = luaL_checkstring(L, 1); |
|
|
} |
|
|
|
|
|
std::vector<ServerListSpec> servers; |
|
@@ -298,19 +298,19 @@ int ModApiMainMenu::l_get_favorites(lua_State *L) |
|
|
|
|
|
for (const Json::Value &server : servers) { |
|
|
|
|
|
lua_pushnumber(L,index); |
|
|
lua_pushnumber(L, index); |
|
|
|
|
|
lua_newtable(L); |
|
|
int top_lvl2 = lua_gettop(L); |
|
|
|
|
|
if (!server["clients"].asString().empty()) { |
|
|
std::string clients_raw = server["clients"].asString(); |
|
|
char* endptr = 0; |
|
|
int numbervalue = strtol(clients_raw.c_str(),&endptr,10); |
|
|
int numbervalue = strtol(clients_raw.c_str(), &endptr,10); |
|
|
|
|
|
if ((!clients_raw.empty()) && (*endptr == 0)) { |
|
|
lua_pushstring(L,"clients"); |
|
|
lua_pushnumber(L,numbervalue); |
|
|
lua_pushstring(L, "clients"); |
|
|
lua_pushnumber(L, numbervalue); |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
} |
|
@@ -319,83 +319,83 @@ int ModApiMainMenu::l_get_favorites(lua_State *L) |
|
|
|
|
|
std::string clients_max_raw = server["clients_max"].asString(); |
|
|
char* endptr = 0; |
|
|
int numbervalue = strtol(clients_max_raw.c_str(),&endptr,10); |
|
|
int numbervalue = strtol(clients_max_raw.c_str(), &endptr,10); |
|
|
|
|
|
if ((!clients_max_raw.empty()) && (*endptr == 0)) { |
|
|
lua_pushstring(L,"clients_max"); |
|
|
lua_pushnumber(L,numbervalue); |
|
|
lua_pushstring(L, "clients_max"); |
|
|
lua_pushnumber(L, numbervalue); |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
} |
|
|
|
|
|
if (!server["version"].asString().empty()) { |
|
|
lua_pushstring(L,"version"); |
|
|
lua_pushstring(L, "version"); |
|
|
std::string topush = server["version"].asString(); |
|
|
lua_pushstring(L,topush.c_str()); |
|
|
lua_pushstring(L, topush.c_str()); |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
|
if (!server["proto_min"].asString().empty()) { |
|
|
lua_pushstring(L,"proto_min"); |
|
|
lua_pushstring(L, "proto_min"); |
|
|
lua_pushinteger(L, server["proto_min"].asInt()); |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
|
if (!server["proto_max"].asString().empty()) { |
|
|
lua_pushstring(L,"proto_max"); |
|
|
lua_pushstring(L, "proto_max"); |
|
|
lua_pushinteger(L, server["proto_max"].asInt()); |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
|
if (!server["password"].asString().empty()) { |
|
|
lua_pushstring(L,"password"); |
|
|
lua_pushstring(L, "password"); |
|
|
lua_pushboolean(L, server["password"].asBool()); |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
|
if (!server["creative"].asString().empty()) { |
|
|
lua_pushstring(L,"creative"); |
|
|
lua_pushstring(L, "creative"); |
|
|
lua_pushboolean(L, server["creative"].asBool()); |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
|
if (!server["damage"].asString().empty()) { |
|
|
lua_pushstring(L,"damage"); |
|
|
lua_pushstring(L, "damage"); |
|
|
lua_pushboolean(L, server["damage"].asBool()); |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
|
if (!server["pvp"].asString().empty()) { |
|
|
lua_pushstring(L,"pvp"); |
|
|
lua_pushstring(L, "pvp"); |
|
|
lua_pushboolean(L, server["pvp"].asBool()); |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
|
if (!server["description"].asString().empty()) { |
|
|
lua_pushstring(L,"description"); |
|
|
lua_pushstring(L, "description"); |
|
|
std::string topush = server["description"].asString(); |
|
|
lua_pushstring(L,topush.c_str()); |
|
|
lua_pushstring(L, topush.c_str()); |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
|
if (!server["name"].asString().empty()) { |
|
|
lua_pushstring(L,"name"); |
|
|
lua_pushstring(L, "name"); |
|
|
std::string topush = server["name"].asString(); |
|
|
lua_pushstring(L,topush.c_str()); |
|
|
lua_pushstring(L, topush.c_str()); |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
|
if (!server["address"].asString().empty()) { |
|
|
lua_pushstring(L,"address"); |
|
|
lua_pushstring(L, "address"); |
|
|
std::string topush = server["address"].asString(); |
|
|
lua_pushstring(L,topush.c_str()); |
|
|
lua_pushstring(L, topush.c_str()); |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
|
if (!server["port"].asString().empty()) { |
|
|
lua_pushstring(L,"port"); |
|
|
lua_pushstring(L, "port"); |
|
|
std::string topush = server["port"].asString(); |
|
|
lua_pushstring(L,topush.c_str()); |
|
|
lua_pushstring(L, topush.c_str()); |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
@@ -406,6 +406,37 @@ int ModApiMainMenu::l_get_favorites(lua_State *L) |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
|
if (server["clients_list"].isArray()) { |
|
|
unsigned int index_lvl2 = 1; |
|
|
lua_pushstring(L, "clients_list"); |
|
|
lua_newtable(L); |
|
|
int top_lvl3 = lua_gettop(L); |
|
|
for (const Json::Value &client : server["clients_list"]) { |
|
|
lua_pushnumber(L, index_lvl2); |
|
|
std::string topush = client.asString(); |
|
|
lua_pushstring(L, topush.c_str()); |
|
|
lua_settable(L, top_lvl3); |
|
|
index_lvl2++; |
|
|
} |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
|
if (server["mods"].isArray()) { |
|
|
unsigned int index_lvl2 = 1; |
|
|
lua_pushstring(L, "mods"); |
|
|
lua_newtable(L); |
|
|
int top_lvl3 = lua_gettop(L); |
|
|
for (const Json::Value &mod : server["mods"]) { |
|
|
|
|
|
lua_pushnumber(L, index_lvl2); |
|
|
std::string topush = mod.asString(); |
|
|
lua_pushstring(L, topush.c_str()); |
|
|
lua_settable(L, top_lvl3); |
|
|
index_lvl2++; |
|
|
} |
|
|
lua_settable(L, top_lvl2); |
|
|
} |
|
|
|
|
|
lua_settable(L, top); |
|
|
index++; |
|
|
} |
|
|