Fix issue #1009 (minetest.get_connected_players() returns non-existing players)
parent
a55c073ce9
commit
86ef7147b6
|
@ -53,8 +53,10 @@ end)
|
||||||
function minetest.get_connected_players()
|
function minetest.get_connected_players()
|
||||||
local temp_table = {}
|
local temp_table = {}
|
||||||
for index, value in pairs(player_list) do
|
for index, value in pairs(player_list) do
|
||||||
|
if value:is_player_connected() then
|
||||||
table.insert(temp_table, value)
|
table.insert(temp_table, value)
|
||||||
end
|
end
|
||||||
|
end
|
||||||
return temp_table
|
return temp_table
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -621,6 +621,16 @@ int ObjectRef::l_is_player(lua_State *L)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// is_player_connected(self)
|
||||||
|
int ObjectRef::l_is_player_connected(lua_State *L)
|
||||||
|
{
|
||||||
|
NO_MAP_LOCK_REQUIRED;
|
||||||
|
ObjectRef *ref = checkobject(L, 1);
|
||||||
|
Player *player = getplayer(ref);
|
||||||
|
lua_pushboolean(L, (player != NULL && player->peer_id != 0));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
// get_player_name(self)
|
// get_player_name(self)
|
||||||
int ObjectRef::l_get_player_name(lua_State *L)
|
int ObjectRef::l_get_player_name(lua_State *L)
|
||||||
{
|
{
|
||||||
|
@ -1148,6 +1158,7 @@ const luaL_reg ObjectRef::methods[] = {
|
||||||
luamethod(ObjectRef, get_luaentity),
|
luamethod(ObjectRef, get_luaentity),
|
||||||
// Player-only
|
// Player-only
|
||||||
luamethod(ObjectRef, is_player),
|
luamethod(ObjectRef, is_player),
|
||||||
|
luamethod(ObjectRef, is_player_connected),
|
||||||
luamethod(ObjectRef, get_player_name),
|
luamethod(ObjectRef, get_player_name),
|
||||||
luamethod(ObjectRef, get_look_dir),
|
luamethod(ObjectRef, get_look_dir),
|
||||||
luamethod(ObjectRef, get_look_pitch),
|
luamethod(ObjectRef, get_look_pitch),
|
||||||
|
|
|
@ -158,6 +158,9 @@ private:
|
||||||
// is_player(self)
|
// is_player(self)
|
||||||
static int l_is_player(lua_State *L);
|
static int l_is_player(lua_State *L);
|
||||||
|
|
||||||
|
// is_player_connected(self)
|
||||||
|
static int l_is_player_connected(lua_State *L);
|
||||||
|
|
||||||
// get_player_name(self)
|
// get_player_name(self)
|
||||||
static int l_get_player_name(lua_State *L);
|
static int l_get_player_name(lua_State *L);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue