From 1177e245e618388de009513e26e8248aad1817b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20P=C3=A9rez-Cerezo?= Date: Thu, 25 Jan 2018 20:06:43 +0100 Subject: Added callbacks and support for transfers from mods. --- init.lua | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'init.lua') 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 -- cgit v1.2.3