Skip to content

Commit 86ef714

Browse files
committedNov 17, 2013
Fix issue #1009 (minetest.get_connected_players() returns non-existing players)
1 parent a55c073 commit 86ef714

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed
 

‎builtin/misc.lua

+3-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ end)
5353
function minetest.get_connected_players()
5454
local temp_table = {}
5555
for index, value in pairs(player_list) do
56-
table.insert(temp_table, value)
56+
if value:is_player_connected() then
57+
table.insert(temp_table, value)
58+
end
5759
end
5860
return temp_table
5961
end

‎src/script/lua_api/l_object.cpp

+11
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,16 @@ int ObjectRef::l_is_player(lua_State *L)
621621
return 1;
622622
}
623623

624+
// is_player_connected(self)
625+
int ObjectRef::l_is_player_connected(lua_State *L)
626+
{
627+
NO_MAP_LOCK_REQUIRED;
628+
ObjectRef *ref = checkobject(L, 1);
629+
Player *player = getplayer(ref);
630+
lua_pushboolean(L, (player != NULL && player->peer_id != 0));
631+
return 1;
632+
}
633+
624634
// get_player_name(self)
625635
int ObjectRef::l_get_player_name(lua_State *L)
626636
{
@@ -1148,6 +1158,7 @@ const luaL_reg ObjectRef::methods[] = {
11481158
luamethod(ObjectRef, get_luaentity),
11491159
// Player-only
11501160
luamethod(ObjectRef, is_player),
1161+
luamethod(ObjectRef, is_player_connected),
11511162
luamethod(ObjectRef, get_player_name),
11521163
luamethod(ObjectRef, get_look_dir),
11531164
luamethod(ObjectRef, get_look_pitch),

‎src/script/lua_api/l_object.h

+3
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,9 @@ class ObjectRef : public ModApiBase {
158158
// is_player(self)
159159
static int l_is_player(lua_State *L);
160160

161+
// is_player_connected(self)
162+
static int l_is_player_connected(lua_State *L);
163+
161164
// get_player_name(self)
162165
static int l_get_player_name(lua_State *L);
163166

0 commit comments

Comments
 (0)
Please sign in to comment.