aboutsummaryrefslogtreecommitdiff
path: root/init.lua
diff options
context:
space:
mode:
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua21
1 files changed, 17 insertions, 4 deletions
diff --git a/init.lua b/init.lua
index 7f4cd8a..2275782 100644
--- a/init.lua
+++ b/init.lua
@@ -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