diff options
| -rw-r--r-- | init.lua | 21 | 
1 files changed, 17 insertions, 4 deletions
| @@ -478,18 +478,31 @@ minetest.register_on_player_receive_fields(function(player, form, pressed)  				if atm.balance[n] < t.sum then  					-- you can never be too paranoid about the funds availaible -					minetest.chat_send_player(n, "Your account does not have enough funds to complete this transfer, aborting") -					atm.showform_wt(player) +				   minetest.chat_send_player(n, "Your account does not have enough funds to complete this transfer, aborting") +				   if not t.extern then +				      atm.showform_wt(player) +				   else +				      minetest.close_formspec(n, "atm.form.wtc") +				   end +				   return  				end  				table.insert(atm.completed_transactions[t.to], {date=os.date("%Y-%m-%d"), from=n, sum=t.sum, desc=t.desc})  				atm.balance[n] = atm.balance[n] - t.sum  				atm.balance[t.to] = atm.balance[t.to] + t.sum -                        atm.write_transactions()  +				atm.write_transactions()   				atm.saveaccounts() -				atm.pending_transfers[n] = nil  				minetest.chat_send_player(n, "Payment of " .. t.sum .. " to " .. t.to .. " completed")  				minetest.chat_send_player(n, n .. ", thank you for choosing the Wire Transfer system") +				if t.callback then -- run callbacks from mods +				   t.callback(t) +				end +				if t.extern == true then -- Transfer was initiated by mod +				   atm.pending_transfers[n] = nil +				   minetest.close_formspec(n, "atm.form.wtc") +				   return +				end +				atm.pending_transfers[n] = nil  				atm.showform_wt(player)  			end  		else | 
