aboutsummaryrefslogtreecommitdiff
path: root/src/script/lua_api
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/lua_api')
-rw-r--r--src/script/lua_api/l_client.cpp17
-rw-r--r--src/script/lua_api/l_client.h3
2 files changed, 20 insertions, 0 deletions
diff --git a/src/script/lua_api/l_client.cpp b/src/script/lua_api/l_client.cpp
index 1673a62ce..52c7f6f30 100644
--- a/src/script/lua_api/l_client.cpp
+++ b/src/script/lua_api/l_client.cpp
@@ -69,6 +69,22 @@ int ModApiClient::l_display_chat_message(lua_State *L)
return 1;
}
+// get_player_names()
+int ModApiClient::l_get_player_names(lua_State *L)
+{
+ const std::list<std::string> &plist = getClient(L)->getConnectedPlayerNames();
+ lua_createtable(L, plist.size(), 0);
+ int newTable = lua_gettop(L);
+ int index = 1;
+ std::list<std::string>::const_iterator iter;
+ for (iter = plist.begin(); iter != plist.end(); iter++) {
+ lua_pushstring(L, (*iter).c_str());
+ lua_rawseti(L, newTable, index);
+ index++;
+ }
+ return 1;
+}
+
// show_formspec(formspec)
int ModApiClient::l_show_formspec(lua_State *L)
{
@@ -154,6 +170,7 @@ void ModApiClient::Initialize(lua_State *L, int top)
{
API_FCT(get_current_modname);
API_FCT(display_chat_message);
+ API_FCT(get_player_names);
API_FCT(set_last_run_mod);
API_FCT(get_last_run_mod);
API_FCT(show_formspec);
diff --git a/src/script/lua_api/l_client.h b/src/script/lua_api/l_client.h
index def9b48a3..fcf8c39ea 100644
--- a/src/script/lua_api/l_client.h
+++ b/src/script/lua_api/l_client.h
@@ -31,6 +31,9 @@ private:
// display_chat_message(message)
static int l_display_chat_message(lua_State *L);
+
+ // get_player_names()
+ static int l_get_player_names(lua_State *L);
// show_formspec(name, fornspec)
static int l_show_formspec(lua_State *L);