diff options
Diffstat (limited to 'advtrains/advtrains/init.lua')
-rw-r--r-- | advtrains/advtrains/init.lua | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/advtrains/advtrains/init.lua b/advtrains/advtrains/init.lua index 3fc16ed..2bdf39c 100644 --- a/advtrains/advtrains/init.lua +++ b/advtrains/advtrains/init.lua @@ -14,9 +14,11 @@ local no_action=false function advtrains.pcall(fun) if no_action then return end - local succ, err, return1, return2, return3, return4=pcall(fun) + local succ, return1, return2, return3, return4=xpcall(fun, function(err) + atwarn("Lua Error occured: ", err) + atwarn(debug.traceback()) + end) if not succ then - atwarn("Lua Error occured: ", err) atwarn("Restoring saved state in 1 second...") no_action=true --read last save state and continue, as if server was restarted @@ -25,9 +27,13 @@ function advtrains.pcall(fun) le.object:remove() end end - minetest.after(1, advtrains.load) + minetest.after(1, function() + advtrains.load() + atwarn("Reload successful!") + advtrains.ndb.restore_all() + end) else - return err, return1, return2, return3, return4 + return return1, return2, return3, return4 end end |