mirror of
https://gitlab.com/lunovox/minertrade.git
synced 2025-03-18 23:01:22 +00:00
147 lines
No EOL
6.1 KiB
Lua
147 lines
No EOL
6.1 KiB
Lua
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
|
|
|
|
return modMinerTrade.bank.player[playername].balance
|
|
end
|
|
|
|
modMinerTrade.getBalance = function(playername)
|
|
if modMinerTrade.isExistAcount(playername) then
|
|
return modMinerTrade.bank.player[playername].balance
|
|
end
|
|
end
|
|
|
|
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)
|
|
end
|
|
|
|
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"))).."]"
|
|
.."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)).."]"
|
|
|
|
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"))).."]"
|
|
|
|
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
|
|
minetest.show_formspec(playername, "frmAtmWithdrawals", formspec)
|
|
end,
|
|
|
|
}
|
|
|
|
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
|
|
end
|
|
end
|
|
end
|
|
|
|
--###############################################################################################################
|
|
|
|
minetest.register_on_player_receive_fields(function(sender, formname, fields)
|
|
return modMinerTrade.onReceiveFields(sender, formname, fields)
|
|
end)
|
|
|
|
minetest.register_on_leaveplayer(function(player)
|
|
modMinerTrade.doBankSave()
|
|
end)
|
|
|
|
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) |