From 458045d49fd96cf19bdd61b2f8dbdbc0fd11b587 Mon Sep 17 00:00:00 2001
From: ShadowNinja <shadowninja@minetest.net>
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)