Skip to content

Commit

Permalink
[CSM] Add function to get player names in range (#5435)
Browse files Browse the repository at this point in the history
* [CSM] Add function to get currently connected player names
  • Loading branch information
bigfoot547 authored and nerzhul committed Mar 22, 2017
1 parent c4b98de commit 9efc5da
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 2 deletions.
9 changes: 8 additions & 1 deletion clientmods/preview/init.lua
Expand Up @@ -102,7 +102,7 @@ core.register_on_punchnode(function(pos, node)
print(dump(itemstack:get_count()))
print(dump(itemstack:get_wear()))
print(dump(itemstack:get_meta()))
print(dump(itemstack:get_metadata()))
print(dump(itemstack:get_metadata()
print(dump(itemstack:is_known()))
--print(dump(itemstack:get_definition()))
print(dump(itemstack:get_tool_capabilities()))
Expand All @@ -120,3 +120,10 @@ core.register_on_punchnode(function(pos, node)
print("node:" .. dump(node))
return false
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
})
6 changes: 5 additions & 1 deletion doc/client_lua_api.md
Expand Up @@ -737,6 +737,10 @@ Call these functions only at load time!
* `minetest.get_wielded_item()`
* Returns the itemstack the local player is holding

### Client Environment
* `minetest.get_player_names()`
* Returns list of player names on server

### Misc.
* `minetest.parse_json(string[, nullvalue])`: returns something
* Convert a string containing JSON data into the Lua equivalent
Expand Down Expand Up @@ -870,4 +874,4 @@ Named colors are also supported and are equivalent to
[CSS Color Module Level 4](http://dev.w3.org/csswg/css-color/#named-colors).
To specify the value of the alpha channel, append `#AA` to the end of the color name
(e.g. `colorname#08`). For named colors the hexadecimal string representing the alpha
value must (always) be two hexadecima
value must (always) be two hexadecima
17 changes: 17 additions & 0 deletions src/script/lua_api/l_client.cpp
Expand Up @@ -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)
{
Expand Down Expand Up @@ -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);
Expand Down
3 changes: 3 additions & 0 deletions src/script/lua_api/l_client.h
Expand Up @@ -31,6 +31,9 @@ class ModApiClient: public ModApiBase

// 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);
Expand Down

0 comments on commit 9efc5da

Please sign in to comment.