Skip to content
Permalink
Browse files

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

* [CSM] Add function to get currently connected player names
  • Loading branch information...
bigfoot547 authored and nerzhul committed Mar 22, 2017
1 parent c4b98de commit 9efc5da0fb7d276deff55db6e4eb89d24ca72b5d
Showing with 33 additions and 2 deletions.
  1. +8 −1 clientmods/preview/init.lua
  2. +5 −1 doc/client_lua_api.md
  3. +17 −0 src/script/lua_api/l_client.cpp
  4. +3 −0 src/script/lua_api/l_client.h
@@ -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()))
@@ -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
})
@@ -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
@@ -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
@@ -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);
@@ -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);

0 comments on commit 9efc5da

Please sign in to comment.
You can’t perform that action at this time.