From: sfan5 Date: Tue, 3 Mar 2020 20:14:47 +0000 (+0100) Subject: Fix core.get_player_by_name() returning unusable ObjectRef X-Git-Tag: 5.2.0~94 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6d8e2d2483715f05216be86a32f664bcbaac3efe;p=oweals%2Fminetest.git Fix core.get_player_by_name() returning unusable ObjectRef Followup to the previous commit. --- diff --git a/src/script/lua_api/l_env.cpp b/src/script/lua_api/l_env.cpp index 6e67e547b..a175569d8 100644 --- a/src/script/lua_api/l_env.cpp +++ b/src/script/lua_api/l_env.cpp @@ -667,15 +667,11 @@ int ModApiEnvMod::l_get_player_by_name(lua_State *L) // Do it const char *name = luaL_checkstring(L, 1); RemotePlayer *player = env->getPlayer(name); - if (player == NULL){ - lua_pushnil(L); - return 1; - } + if (!player || player->getPeerId() == PEER_ID_INEXISTENT) + return 0; PlayerSAO *sao = player->getPlayerSAO(); - if(sao == NULL){ - lua_pushnil(L); - return 1; - } + if (!sao || sao->isGone()) + return 0; // Put player on stack getScriptApiBase(L)->objectrefGetOrCreate(L, sao); return 1;