aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabriel Pérez-Cerezo <gabriel@gpcf.eu>2018-01-25 20:06:43 +0100
committerGabriel Pérez-Cerezo <gabriel@gpcf.eu>2018-01-25 20:06:43 +0100
commit1177e245e618388de009513e26e8248aad1817b0 (patch)
tree498c70bef5e33ebb73f933f4906aa882a39fa13e
parente9c367fb1c553869b82e56eeed628aae4ccca194 (diff)
downloadatm-1177e245e618388de009513e26e8248aad1817b0.tar.gz
atm-1177e245e618388de009513e26e8248aad1817b0.tar.bz2
atm-1177e245e618388de009513e26e8248aad1817b0.zip
Added callbacks and support for transfers from mods.
-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