mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
Fix crash when calling remove/kick/ban_player on start (#11672)
This commit is contained in:
parent
5aa95fef10
commit
bc71622d21
1 changed files with 9 additions and 2 deletions
|
@ -293,8 +293,10 @@ int ModApiServer::l_ban_player(lua_State *L)
|
||||||
{
|
{
|
||||||
NO_MAP_LOCK_REQUIRED;
|
NO_MAP_LOCK_REQUIRED;
|
||||||
|
|
||||||
Server *server = getServer(L);
|
if (!getEnv(L))
|
||||||
|
throw LuaError("Can't ban player before server has started up");
|
||||||
|
|
||||||
|
Server *server = getServer(L);
|
||||||
const char *name = luaL_checkstring(L, 1);
|
const char *name = luaL_checkstring(L, 1);
|
||||||
RemotePlayer *player = server->getEnv().getPlayer(name);
|
RemotePlayer *player = server->getEnv().getPlayer(name);
|
||||||
if (!player) {
|
if (!player) {
|
||||||
|
@ -312,6 +314,10 @@ int ModApiServer::l_ban_player(lua_State *L)
|
||||||
int ModApiServer::l_kick_player(lua_State *L)
|
int ModApiServer::l_kick_player(lua_State *L)
|
||||||
{
|
{
|
||||||
NO_MAP_LOCK_REQUIRED;
|
NO_MAP_LOCK_REQUIRED;
|
||||||
|
|
||||||
|
if (!getEnv(L))
|
||||||
|
throw LuaError("Can't kick player before server has started up");
|
||||||
|
|
||||||
const char *name = luaL_checkstring(L, 1);
|
const char *name = luaL_checkstring(L, 1);
|
||||||
std::string message("Kicked");
|
std::string message("Kicked");
|
||||||
if (lua_isstring(L, 2))
|
if (lua_isstring(L, 2))
|
||||||
|
@ -334,7 +340,8 @@ int ModApiServer::l_remove_player(lua_State *L)
|
||||||
NO_MAP_LOCK_REQUIRED;
|
NO_MAP_LOCK_REQUIRED;
|
||||||
std::string name = luaL_checkstring(L, 1);
|
std::string name = luaL_checkstring(L, 1);
|
||||||
ServerEnvironment *s_env = dynamic_cast<ServerEnvironment *>(getEnv(L));
|
ServerEnvironment *s_env = dynamic_cast<ServerEnvironment *>(getEnv(L));
|
||||||
assert(s_env);
|
if (!s_env)
|
||||||
|
throw LuaError("Can't remove player before server has started up");
|
||||||
|
|
||||||
RemotePlayer *player = s_env->getPlayer(name.c_str());
|
RemotePlayer *player = s_env->getPlayer(name.c_str());
|
||||||
if (!player)
|
if (!player)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue