From 458045d49fd96cf19bdd61b2f8dbdbc0fd11b587 Mon Sep 17 00:00:00 2001 From: ShadowNinja Date: Mon, 3 Feb 2014 18:15:03 -0500 Subject: [PATCH] Fix crash when a error occurs in a globalstep callback --- src/script/cpp_api/s_env.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/script/cpp_api/s_env.cpp b/src/script/cpp_api/s_env.cpp index ef3a1dddf..2c2198edf 100644 --- a/src/script/cpp_api/s_env.cpp +++ b/src/script/cpp_api/s_env.cpp @@ -24,6 +24,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "environment.h" #include "mapgen.h" #include "lua_api/l_env.h" +#include "server.h" void ScriptApiEnv::environment_OnGenerated(v3s16 minp, v3s16 maxp, u32 blockseed) @@ -50,7 +51,11 @@ void ScriptApiEnv::environment_Step(float dtime) lua_getfield(L, -1, "registered_globalsteps"); // Call callbacks lua_pushnumber(L, dtime); - script_run_callbacks(L, 1, RUN_CALLBACKS_MODE_FIRST); + try { + script_run_callbacks(L, 1, RUN_CALLBACKS_MODE_FIRST); + } catch (LuaError &e) { + getServer()->setAsyncFatalError(e.what()); + } } void ScriptApiEnv::environment_OnMapgenInit(MapgenParams *mgparams)