diff options
author | orwell96 <mono96.mml@gmail.com> | 2017-04-05 13:57:09 +0200 |
---|---|---|
committer | orwell96 <mono96.mml@gmail.com> | 2017-04-29 14:53:00 +0200 |
commit | f42b01c74bdc7e91d3def03125a0e24e6a3bb0d4 (patch) | |
tree | 58a7230e725eb15cf49eedb80254ae0fa88433d1 /advtrains/advtrains/trackplacer.lua | |
parent | 337db2a573ccaa1672e713855022e96106679803 (diff) | |
download | advtrains-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.lua | 8 |
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, }) |