aboutsummaryrefslogtreecommitdiff
path: root/advtrains/advtrains/trackplacer.lua
diff options
context:
space:
mode:
authororwell96 <mono96.mml@gmail.com>2017-04-05 13:57:09 +0200
committerorwell96 <mono96.mml@gmail.com>2017-04-29 14:53:00 +0200
commitf42b01c74bdc7e91d3def03125a0e24e6a3bb0d4 (patch)
tree58a7230e725eb15cf49eedb80254ae0fa88433d1 /advtrains/advtrains/trackplacer.lua
parent337db2a573ccaa1672e713855022e96106679803 (diff)
downloadadvtrains-f42b01c74bdc7e91d3def03125a0e24e6a3bb0d4.tar.gz
advtrains-f42b01c74bdc7e91d3def03125a0e24e6a3bb0d4.tar.bz2
advtrains-f42b01c74bdc7e91d3def03125a0e24e6a3bb0d4.zip
Add pcall wrapper to prevent server crashes when advtrains throws an error
Instead, read save files again and restore state before the crash Rebased to latest commit
Diffstat (limited to 'advtrains/advtrains/trackplacer.lua')
-rw-r--r--advtrains/advtrains/trackplacer.lua8
1 files changed, 8 insertions, 0 deletions
diff --git a/advtrains/advtrains/trackplacer.lua b/advtrains/advtrains/trackplacer.lua
index e039800..5f9bdf7 100644
--- a/advtrains/advtrains/trackplacer.lua
+++ b/advtrains/advtrains/trackplacer.lua
@@ -187,6 +187,8 @@ function tp.register_track_placer(nnprefix, imgprefix, dispname)
wield_image = imgprefix.."_placer.png",
groups={},
on_place = function(itemstack, placer, pointed_thing)
+ return advtrains.pcall(function()
+
local name = placer:get_player_name()
if not name then
return itemstack
@@ -207,6 +209,7 @@ function tp.register_track_placer(nnprefix, imgprefix, dispname)
end
end
return itemstack
+ end)
end,
})
end
@@ -220,6 +223,7 @@ minetest.register_craftitem("advtrains:trackworker",{
wield_image = "advtrains_trackworker.png",
stack_max = 1,
on_place = function(itemstack, placer, pointed_thing)
+ return advtrains.pcall(function()
local name = placer:get_player_name()
if not name then
return
@@ -260,8 +264,11 @@ minetest.register_craftitem("advtrains:trackworker",{
advtrains.ndb.swap_node(pos, {name=nnprefix.."_"..suffix..modext[modpos+1], param2=node.param2})
end
end
+ end)
end,
on_use=function(itemstack, user, pointed_thing)
+ return advtrains.pcall(function()
+
local name = user:get_player_name()
if not name then
return
@@ -292,6 +299,7 @@ minetest.register_craftitem("advtrains:trackworker",{
else
atprint(name, dump(tp.tracks))
end
+ end)
end,
})