[CSM] Add function to get player names in range ()

* [CSM] Add function to get currently connected player names
This commit is contained in:
bigfoot547 2017-03-22 15:13:03 -05:00 committed by Loïc Blot
parent c4b98deb61
commit 9efc5da0fb
4 changed files with 33 additions and 2 deletions
clientmods/preview
doc
src/script/lua_api

@ -102,7 +102,7 @@ core.register_on_punchnode(function(pos, node)
print(dump(itemstack:get_count())) print(dump(itemstack:get_count()))
print(dump(itemstack:get_wear())) print(dump(itemstack:get_wear()))
print(dump(itemstack:get_meta())) print(dump(itemstack:get_meta()))
print(dump(itemstack:get_metadata())) print(dump(itemstack:get_metadata()
print(dump(itemstack:is_known())) print(dump(itemstack:is_known()))
--print(dump(itemstack:get_definition())) --print(dump(itemstack:get_definition()))
print(dump(itemstack:get_tool_capabilities())) print(dump(itemstack:get_tool_capabilities()))
@ -120,3 +120,10 @@ core.register_on_punchnode(function(pos, node)
print("node:" .. dump(node)) print("node:" .. dump(node))
return false return false
end) end)
-- This is an example function to ensure it's working properly, should be removed before merge
core.register_chatcommand("list_players", {
func = function(param)
core.display_chat_message(dump(core.get_player_names()))
end
})

@ -737,6 +737,10 @@ Call these functions only at load time!
* `minetest.get_wielded_item()` * `minetest.get_wielded_item()`
* Returns the itemstack the local player is holding * Returns the itemstack the local player is holding
### Client Environment
* `minetest.get_player_names()`
* Returns list of player names on server
### Misc. ### Misc.
* `minetest.parse_json(string[, nullvalue])`: returns something * `minetest.parse_json(string[, nullvalue])`: returns something
* Convert a string containing JSON data into the Lua equivalent * Convert a string containing JSON data into the Lua equivalent

@ -69,6 +69,22 @@ int ModApiClient::l_display_chat_message(lua_State *L)
return 1; 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) // show_formspec(formspec)
int ModApiClient::l_show_formspec(lua_State *L) 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(get_current_modname);
API_FCT(display_chat_message); API_FCT(display_chat_message);
API_FCT(get_player_names);
API_FCT(set_last_run_mod); API_FCT(set_last_run_mod);
API_FCT(get_last_run_mod); API_FCT(get_last_run_mod);
API_FCT(show_formspec); API_FCT(show_formspec);

@ -32,6 +32,9 @@ private:
// display_chat_message(message) // display_chat_message(message)
static int l_display_chat_message(lua_State *L); 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) // show_formspec(name, fornspec)
static int l_show_formspec(lua_State *L); static int l_show_formspec(lua_State *L);