2022-05-12 11:32:28 -03:00
modMinerTrade.doBankSave = function ( )
local file = io.open ( modMinerTrade.urlTabela , " w " )
if file then
file : write ( minetest.serialize ( modMinerTrade.bank ) )
file : close ( )
--minetest.log('action',"[MINERTRADE] Banco de dados salvo !")
else
minetest.log ( ' error ' , " [MINERTRADE:ERRO] " .. modMinerTrade.translate ( " The file '%s' is not in table format! " ) : format ( modMinerTrade.urlTabela ) )
end
end
modMinerTrade.doBankLoad = function ( )
local file = io.open ( modMinerTrade.urlTabela , " r " )
if file then
modMinerTrade.bank = minetest.deserialize ( file : read ( " *all " ) )
file : close ( )
if not modMinerTrade.bank or type ( modMinerTrade.bank ) ~= " table " then
minetest.log ( ' error ' , " [MINERTRADE:ERRO] " .. modMinerTrade.translate ( " The file '%s' is not in table format! " ) : format ( modMinerTrade.urlTabela ) )
return { }
else
minetest.log ( ' action ' , " [MINERTRADE] " .. modMinerTrade.translate ( " Opening '%s'! " ) : format ( modMinerTrade.urlTabela ) )
end
end
end
modMinerTrade.isExistAcount = function ( playername )
if modMinerTrade.bank . player [ playername ] ~= nil then
return true
else
return false
end
end
modMinerTrade.createAcount = function ( playername )
if modMinerTrade.bank . player [ playername ] == nil then
modMinerTrade.bank . player [ playername ] = {
acount_created = os.date ( " %Y/%b/%d %Hh:%Mm:%Ss " ) ,
balance = 0 ,
}
return true
else
return false
end
2017-03-13 18:47:26 -03:00
2022-05-12 11:32:28 -03:00
return modMinerTrade.bank . player [ playername ] . balance
end
2017-03-13 18:26:38 -03:00
2022-05-12 11:32:28 -03:00
modMinerTrade.getBalance = function ( playername )
if modMinerTrade.isExistAcount ( playername ) then
return modMinerTrade.bank . player [ playername ] . balance
end
end
2017-03-13 18:26:38 -03:00
2022-05-12 11:32:28 -03:00
modMinerTrade.showAtm = {
frmMain = function ( playername ) --FORMULÁRIO: PRINCIPAL / RAIZ
local formspec = " size[9.5,10.5] "
--.."bgcolor[#636D76FF;false]"
--..default.gui_bg
--..default.gui_bg_img
--..default.gui_slots
--.."bgcolor[#636D76FF;false]"
.. " background[-0.25,-0.25;10,11;safe_inside.png] "
.. " button[0,0.0;4,0.5;btnBalance; " .. minetest.formspec_escape ( core.colorize ( " #FFFFFF " , modMinerTrade.translate ( " BALANCE " ) ) ) .. " ] "
--.."button[0,0.5;4,0.5;btnStatement;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("STATEMENT"))).."]"
--.."button[0,1.0;4,0.5;btnDeposits;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("DEPOSITS"))).."]"
.. " button[0,1.5;4,0.5;btnWithdrawals; " .. minetest.formspec_escape ( core.colorize ( " #FFFFF " , modMinerTrade.translate ( " WITHDRAWALS [DINHEIRO E CHECK] " ) ) ) .. " ] "
--.."button[0,2.0;4,0.5;btnTransfers;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("TRANSFERS"))).."]"
--.."button[0,2.0;4,0.5;btnLoans;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("LOANS"))).."]" --Emprestimos
--.."button[0,2.5;4,0.5;btnCreditCard;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("CARTÃO DE CRÉDITO [EXPEDIR E MUDAR SENHA]"))).."]"
--.."button[0,3.0;4,0.5;btnSetings;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("SETTINGS"))).."]" --Se quer ou não uma senha, se quer receber uma carta quando houver uma nova movimentacao.
.. " button_exit[0,3.5;4,0.5;; " .. minetest.formspec_escape ( core.colorize ( " #FFFFFF " , modMinerTrade.translate ( " EXIT " ) ) ) .. " ] "
modMinerTrade.doSoundPlayer ( playername , " sfx_atm " , 5 )
minetest.show_formspec ( playername , " frmAtmMain " , formspec )
end ,
frmBalance = function ( playername ) --FORMULÁRIO: SALDO
local msgBalance = " "
if modMinerTrade.isExistAcount ( playername ) then
msgBalance = modMinerTrade.translate ( " You own %03d minercash " ) : format ( modMinerTrade.getBalance ( playername ) )
else
msgBalance = modMinerTrade.translate ( " Player '%s' is not an account holder of this bank. " ) : format ( playername )
2017-03-13 18:26:38 -03:00
end
2022-05-12 11:32:28 -03:00
local formspec = " size[9.5,10.5] "
--.."bgcolor[#636D76FF;false]"
--..default.gui_bg
--..default.gui_bg_img
--..default.gui_slots
2017-03-13 18:26:38 -03:00
2022-05-12 11:32:28 -03:00
--.."bgcolor[#636D76FF;false]"
.. " background[-0.25,-0.25;10,11;safe_inside.png] "
.. " button[0,0.0;4,0.5;btnAtmMain; " .. minetest.formspec_escape ( core.colorize ( " #FFFFFF " , modMinerTrade.translate ( " BACK " ) ) ) .. " ] "
.. " button_exit[0,3.0;4,0.5;; " .. minetest.formspec_escape ( core.colorize ( " #FFFFFF " , modMinerTrade.translate ( " EXIT " ) ) ) .. " ] "
.. " label[5.0,0.0; " .. minetest.formspec_escape ( core.colorize ( " #00FFFF " , modMinerTrade.translate ( " BALANCES " ) .. " : " ) ) .. " ] "
.. " label[5.0,2.0; " .. minetest.formspec_escape ( core.colorize ( " #00FFFF " , msgBalance ) ) .. " ] "
2017-03-13 18:26:38 -03:00
2022-05-12 11:32:28 -03:00
modMinerTrade.doSoundPlayer ( playername , " sfx_atm " , 5 )
minetest.show_formspec ( playername , " frmAtmBalance " , formspec )
end ,
frmWithdrawals = function ( playername ) --FORMULÁRIO: EXTRATO
local formspec = " size[9.5,10.5] "
--.."bgcolor[#636D76FF;false]"
--..default.gui_bg
--..default.gui_bg_img
--..default.gui_slots
--.."bgcolor[#636D76FF;false]"
.. " background[-0.25,-0.25;10,11;safe_inside.png] "
.. " button[0,0.0;4,0.5;btnAtmMain; " .. minetest.formspec_escape ( core.colorize ( " #FFFFFF " , modMinerTrade.translate ( " BACK " ) ) ) .. " ] "
.. " button_exit[0,3.0;4,0.5;; " .. minetest.formspec_escape ( core.colorize ( " #FFFFFF " , modMinerTrade.translate ( " EXIT " ) ) ) .. " ] "
2017-03-13 18:26:38 -03:00
2022-05-12 11:32:28 -03:00
modMinerTrade.doSoundPlayer ( playername , " sfx_atm " , 5 )
minetest.show_formspec ( playername , " frmAtmWithdrawals " , formspec )
2017-03-13 18:26:38 -03:00
end ,
2022-05-12 11:32:28 -03:00
}
modMinerTrade.onReceiveFields = function ( sender , formname , fields )
local sendername = sender : get_player_name ( )
if fields.btnAtmMain ~= nil then
modMinerTrade.showAtm . frmMain ( playername )
else
if formname == " frmAtmMain " then
if fields.btnSaldo ~= nil then
modMinerTrade.showAtm . frmBalance ( playername )
elseif fields.btnWithdrawals ~= nil then
modMinerTrade.showAtm . frmWithdrawals ( playername )
end
2017-03-13 18:26:38 -03:00
end
2022-05-12 11:32:28 -03:00
end
end
--###############################################################################################################
minetest.register_on_player_receive_fields ( function ( sender , formname , fields )
return modMinerTrade.onReceiveFields ( sender , formname , fields )
end )
2017-03-13 18:26:38 -03:00
2022-05-12 11:32:28 -03:00
minetest.register_on_leaveplayer ( function ( player )
modMinerTrade.doBankSave ( )
end )
2017-03-13 18:26:38 -03:00
2022-05-12 11:32:28 -03:00
minetest.register_on_shutdown ( function ( )
modMinerTrade.doBankSave ( )
minetest.log ( ' action ' , " [STRONGBOX] " .. modMinerTrade.translate ( " Saving bank from all players in the file '%s'! " ) : format ( modMinerTrade.urlTabela ) )
end )