This commit is contained in:
Lunovox 2024-12-06 00:40:48 -03:00
parent 4159eb3205
commit 407b671e08
2 changed files with 192 additions and 188 deletions

64
api.lua
View file

@ -1,33 +1,33 @@
--FONTE: https://forum.minetest.net/viewtopic.php?pid=48124
--FONTE: https://forum.core.net/viewtopic.php?pid=48124
modMinerTrade.debug = function(text, playername)
if text ~= nil
and type(text) == "string"
and text ~= ""
then
if minetest.settings:get_bool("minertrade.debug") then
if core.settings:get_bool("minertrade.debug") then
if playername ~= nil
and type(playername) == "string"
and playername ~= ""
then
local player = minetest.get_player_by_name(playername)
local player = core.get_player_by_name(playername)
if player ~=nil and player:is_player() then
minetest.chat_send_player(
core.chat_send_player(
playername, text
)
minetest.log('action',"["..modMinerTrade.modName:upper()..":DEBUG:"..playername.."] "..text)
core.log('warning',"["..modMinerTrade.modName:upper()..":DEBUG:"..playername.."] "..text)
else
minetest.log('error',
core.log('error',
"["..modMinerTrade.modName:upper()..":DEBUG] "
..modSoundChat.translate(
"Unable to address debug for player '%s'."
):format(dump(playername))
)
minetest.log('action',"["..modMinerTrade.modName:upper()..":DEBUG] "..text)
core.log('warning',"["..modMinerTrade.modName:upper()..":DEBUG] "..text)
end
else
minetest.chat_send_all(text)
minetest.log('action',"["..modMinerTrade.modName:upper()..":DEBUG] "..text)
core.chat_send_all(text)
core.log('warning',"["..modMinerTrade.modName:upper()..":DEBUG] "..text)
end
end
end
@ -43,17 +43,17 @@ modMinerTrade.getNodesInRange = function(pos, search_distance, nodenames)
local minp = {x=pos.x-search_distance,y=pos.y-search_distance, z=pos.z-search_distance}
local maxp = {x=pos.x+search_distance,y=pos.y+search_distance, z=pos.z+search_distance}
local nodes = minetest.find_nodes_in_area(minp, maxp, nodenames)
--local nodes = minetest.env:find_nodes_in_area(minp, maxp, nodenames) --deprecado
local nodes = core.find_nodes_in_area(minp, maxp, nodenames)
--local nodes = core.env:find_nodes_in_area(minp, maxp, nodenames) --deprecado
return #nodes
end
modMinerTrade.doSoundPlayer = function(playername, sfxFile, intDistace)
if intDistace == nil or (type(intDistace) == "number" and intDistace>= 0) then
if type(playername) == "string" and type(sfxFile) == "string" and playername ~= "" and sfxFile ~= "" then
local player = minetest.get_player_by_name(playername)
local player = core.get_player_by_name(playername)
if player ~=nil and player:is_player() then
return minetest.sound_play(sfxFile, {
return core.sound_play(sfxFile, {
object = player, --Se retirar esta linha tocará para todos. (Provavelmente ¬¬)
gain = 1.0, -- 1.0 = Volume total
max_hear_distance = intDistace,
@ -66,9 +66,9 @@ end
modMinerTrade.canInteract = function(meta, player)
if player:get_player_name() == meta:get_string("owner")
or minetest.get_player_privs(player:get_player_name()).server
or minetest.get_player_privs(player:get_player_name()).checkchest
or (minetest.get_modpath("tradelands") and modTradeLands.canInteract(player:getpos(), player:get_player_name()))
or core.get_player_privs(player:get_player_name()).server
or core.get_player_privs(player:get_player_name()).checkchest
or (core.get_modpath("tradelands") and modTradeLands.canInteract(player:getpos(), player:get_player_name()))
then
return true
end
@ -85,9 +85,9 @@ end
modMinerTrade.getPosMachineName = function(posMachine)
if type(posMachine)=="table" and type(posMachine.x)=="number" and type(posMachine.y)=="number" and type(posMachine.z)=="number" then
return minetest.pos_to_string(modMinerTrade.floor_pos(posMachine))
return core.pos_to_string(modMinerTrade.floor_pos(posMachine))
else
minetest.log(
core.log(
"error",("[modMinerTrade.getPosMachineName(posMachine='%s')] "):format(dump(posMachine))
..modMinerTrade.translate("The '%s' parameter must be of the position type (x,y,z)!"):format("posMachine")
)
@ -103,13 +103,13 @@ modMinerTrade.setMachineFlagsAlert = function (posMachine, value)
if type(value)=="number" and value>=0 then
modMinerTrade.machine_flags[posMachineName].lastalert = value
else
minetest.log(
core.log(
"error",("[modMinerTrade.setMachineFlagsAlert(posMachine='%s', value='%d')] "):format(dump(posMachine), dump(value))
..modMinerTrade.translate("The '%s' parameter must be of the non-empty string type!"):format("message")
)
end
else
minetest.log(
core.log(
"error",("[modMinerTrade.setMachineFlagsAlert(posMachine='%s', value='%s')] "):format(dump(posMachine), dump(dump))
..modMinerTrade.translate("The '%s' parameter must be of the position type (x,y,z)!"):format("posMachine")
)
@ -124,7 +124,7 @@ modMinerTrade.getMachineFlagsAlert = function (posMachine)
if type(modMinerTrade.machine_flags[posMachineName].lastalert)~="number" or modMinerTrade.machine_flags[posMachineName].lastalert < 0 then modMinerTrade.machine_flags[posMachineName].lastalert = 0 end
return modMinerTrade.machine_flags[posMachineName].lastalert
else
minetest.log(
core.log(
"error",("[modMinerTrade.getMachineFlagsAlert(posMachine='%s', value='%s')] "):format(dump(posMachine), dump(dump))
..modMinerTrade.translate("The '%s' parameter must be of the position type (x,y,z)!"):format("posMachine")
)
@ -132,10 +132,10 @@ modMinerTrade.getMachineFlagsAlert = function (posMachine)
end
modMinerTrade.sendMailMachine = function(posMachine, ownername, message)
if minetest.get_modpath("correio") then
if core.get_modpath("correio") then
local mailMachineInterval = (60*60)
if type(posMachine)=="table" and type(posMachine.x)=="number" and type(posMachine.y)=="number" and type(posMachine.z)=="number" then
if type(ownername)=="string" and ownername:trim()~="" and minetest.player_exists(ownername) then --Checks whether the owner really exists.
if type(ownername)=="string" and ownername:trim()~="" and core.player_exists(ownername) then --Checks whether the owner really exists.
if type(message)=="string" and message:trim()~="" then
local agora = os.time()
local macFlag = modMinerTrade.getMachineFlagsAlert(posMachine)
@ -146,12 +146,12 @@ modMinerTrade.sendMailMachine = function(posMachine, ownername, message)
message:trim()
)
if carta~=nil then
minetest.log('action',
core.log('action',
modMinerTrade.translate("A letter was sent by the dispensing machine '%s' to '%s' advising about '%s'!"):
format(modMinerTrade.getPosMachineName(posMachine), ownername , message)
)
else
minetest.log(
core.log(
"error",("[modMinerTrade.sendMailMachine(posMachine='%s', ownername='%s', message='%s')] "):format(dump(posMachine), dump(ownername), dump(message))
..modMinerTrade.translate("Due to an unknown error, it was not possible to send an email through the dispensing machine!")
)
@ -159,38 +159,38 @@ modMinerTrade.sendMailMachine = function(posMachine, ownername, message)
modMinerTrade.setMachineFlagsAlert(posMachine, agora)
end --if macFlag + mailMachineInterval < agora then
else
minetest.log(
core.log(
"error",("[modMinerTrade.sendMailMachine(posMachine='%s', ownername='%s', message='%s')] "):format(dump(posMachine), dump(ownername), dump(message))
..modMinerTrade.translate("The '%s' parameter must be of the non-empty string type!"):format("message")
)
end
else
minetest.log(
core.log(
"error",("[modMinerTrade.sendMailMachine(posMachine='%s', ownername='%s', message='%s')] "):format(dump(posMachine), dump(ownername), dump(message))
..modMinerTrade.translate("The '%s' parameter must be of the non-empty string type!"):format("ownername")
)
end
else
minetest.log(
core.log(
"error",("[modMinerTrade.sendMailMachine(posMachine='%s', ownername='%s', message='%s')] "):format(dump(posMachine), dump(ownername), dump(message))
..modMinerTrade.translate("The '%s' parameter must be of the position type (x,y,z)!"):format("posMachine")
)
end
end --if minetest.get_modpath("correio") then
end --if core.get_modpath("correio") then
end
modMinerTrade.errorDispensing = function(erroMessage, player, pos, ownername)
if type(erroMessage)=="string" and erroMessage:trim()~="" then
if player:is_player() then
local playername = player:get_player_name()
minetest.chat_send_player(playername, core.colorize("#00ff00", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")..erroMessage)
minetest.sound_play("sfx_failure", {object=player, max_hear_distance=5.0,})
core.chat_send_player(playername, core.colorize("#00ff00", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")..erroMessage)
core.sound_play("sfx_failure", {object=player, max_hear_distance=5.0,})
end
if type(pos)~="nil" and type(ownername)=="string" and ownername:trim()~="" then
modMinerTrade.sendMailMachine(pos, ownername, erroMessage)
end
else
minetest.log(
core.log(
"error",("[modMinerTrade.errorDispensing(erroMessage='%s', player, pos, ownername)] "):format(dump(erroMessage))
..modMinerTrade.translate("The '%s' parameter must be of the non-empty string type!"):format("erroMessage")
)

View file

@ -1,4 +1,4 @@
minetest.register_privilege("developer", {
core.register_privilege("developer", {
description=modMinerTrade.translate("Can access evolving ATM functions."),
give_to_singleplayer=false,
})
@ -11,24 +11,24 @@ modMinerTrade.getUrlDatabase = function()
else
extension = ".tbl"
end
return minetest.get_worldpath().."/minertrade"..extension
return core.get_worldpath().."/minertrade"..extension
end
modMinerTrade.doBankSave = function()
--modMinerTrade.debug("modMinerTrade.doBankSave() >>> "..modMinerTrade.getUrlDatabase())
local file = io.open(modMinerTrade.getUrlDatabase(), "w")
if file then
local content = minetest.serialize(modMinerTrade.bank)
local content = core.serialize(modMinerTrade.bank)
--modMinerTrade.debug("modMinerTrade.doBankSave() >>> content = "..dump(content))
if modMinerTrade.save_compressed then
content = minetest.encode_base64(content)
content = core.encode_base64(content)
end
file:write(content)
file:close()
minetest.log('action',"[MINERTRADE] "..modMinerTrade.translate("Saving data bank in the file '%s'!"):format(modMinerTrade.getUrlDatabase()))
core.log('action',"[MINERTRADE] "..modMinerTrade.translate("Saving data bank in the file '%s'!"):format(modMinerTrade.getUrlDatabase()))
else
minetest.log('error',"[MINERTRADE:ERRO] "..modMinerTrade.translate("The file '%s' is not in table format!"):format(modMinerTrade.getUrlDatabase()))
core.log('error',"[MINERTRADE:ERRO] "..modMinerTrade.translate("The file '%s' is not in table format!"):format(modMinerTrade.getUrlDatabase()))
end
end
@ -37,30 +37,30 @@ modMinerTrade.doBankLoad = function()
local file = io.open(modMinerTrade.getUrlDatabase(), "r")
if file then
if modMinerTrade.save_compressed then
modMinerTrade.bank = minetest.deserialize(minetest.decode_base64(file:read("*all")))
modMinerTrade.bank = core.deserialize(core.decode_base64(file:read("*all")))
else
modMinerTrade.bank = minetest.deserialize(file:read("*all"))
modMinerTrade.bank = core.deserialize(file:read("*all"))
end
--modMinerTrade.debug("modMinerTrade.doBankLoad() >>> modMinerTrade.bank = "..dump(modMinerTrade.bank))
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.getUrlDatabase()))
core.log('error',"[MINERTRADE:ERRO] "..modMinerTrade.translate("The file '%s' is not in table format!"):format(modMinerTrade.getUrlDatabase()))
return { }
else
minetest.log('action',"[MINERTRADE] "..modMinerTrade.translate("Opening '%s' with data bank!"):format(modMinerTrade.getUrlDatabase()))
core.log('action',"[MINERTRADE] "..modMinerTrade.translate("Opening '%s' with data bank!"):format(modMinerTrade.getUrlDatabase()))
end
end
end
modMinerTrade.getDelayToUse = function()
if modMinerTrade.delay_to_use == nil then
modMinerTrade.delay_to_use = minetest.settings:get("minertrade.delay_to_use")
modMinerTrade.delay_to_use = core.settings:get("minertrade.delay_to_use")
if modMinerTrade.delay_to_use == nil
or type(tonumber(modMinerTrade.delay_to_use)) ~= "number"
or tonumber(modMinerTrade.delay_to_use) < 1
then
modMinerTrade.delay_to_use = 300 -- 300 = 5 minutes
minetest.settings:set("minertrade.delay_to_use", modMinerTrade.delay_to_use)
core.settings:set("minertrade.delay_to_use", modMinerTrade.delay_to_use)
end
end
return tonumber(modMinerTrade.delay_to_use)
@ -68,7 +68,10 @@ end
modMinerTrade.canInteract = function(playername)
--local clickername = clicker:get_player_name()
if minetest.get_player_privs(playername).mayor then
if core.get_player_privs(playername).mayor
or core.get_player_privs(playername).protection_bypass
or core.get_player_privs(playername).server
then
return true
end
return false
@ -120,14 +123,14 @@ modMinerTrade.addBalance = function(playername, value)
end
modMinerTrade.getMaxStatements = function() --MÁXIMO DE EXTRATOS ARMAZENADOS.
local maxStatements = minetest.settings:get("minertrade.bank.max_statements")
local maxStatements = core.settings:get("minertrade.bank.max_statements")
if maxStatements == nil
or type(tonumber(maxStatements)) ~= "number"
or tonumber(maxStatements) < 1 --Min
or tonumber(maxStatements) > 300 --Max
then
maxStatements = 30
minetest.settings:set("minertrade.bank.max_statements", tostring(maxStatements))
core.settings:set("minertrade.bank.max_statements", tostring(maxStatements))
end
return tonumber(maxStatements)
end
@ -182,7 +185,7 @@ end
modMinerTrade.getSalt_Hash = function()
if modMinerTrade.bank.salt_hash == nil then
modMinerTrade.bank.salt_hash = minetest.encode_base64("SALT_HASH: "..os.date("%Y-%B-%d %Hh:%Mm:%Ss"))
modMinerTrade.bank.salt_hash = core.encode_base64("SALT_HASH: "..os.date("%Y-%B-%d %Hh:%Mm:%Ss"))
end
return modMinerTrade.bank.salt_hash
end
@ -191,7 +194,7 @@ modMinerTrade.addTransferProof_v2 = function(player, accountname, txtBeneficiary
local playername = player:get_player_name()
local when = os.date("%Y-%B-%d %Hh:%Mm:%Ss")
local title = modMinerTrade.translate("TRANSFER PROOF")
local itemDescription = minetest.colorize("#00FF00", title)
local itemDescription = core.colorize("#00FF00", title)
.."\n"..modMinerTrade.translate("Reason: %s"):format(
txtReason:sub(1, modMinerTrade.paperprinted.max_title_size)
)
@ -205,9 +208,9 @@ modMinerTrade.addTransferProof_v2 = function(player, accountname, txtBeneficiary
.."\n"..modMinerTrade.translate("Value")..": "..("%02d"):format(tonumber(txtValue)).." minercash"
.."\n"..modMinerTrade.translate("Transfer Reason")..": "..txtReason
local Auth = minetest.get_password_hash(
local Auth = core.get_password_hash(
modMinerTrade.getSalt_Hash(),
minetest.encode_base64(docData:trim())
core.encode_base64(docData:trim())
)
local htmlBody = [[
@ -229,12 +232,12 @@ modMinerTrade.addTransferProof_v2 = function(player, accountname, txtBeneficiary
</center>
]]
--[[ ]]
htmlBody = htmlBody:gsub('<minetest_bank/>', minetest.formspec_escape(modMinerTrade.translate("MINETEST BANK")))
htmlBody = htmlBody:gsub('AUTHENTICATION HASH', minetest.formspec_escape(modMinerTrade.translate("AUTHENTICATION HASH")))
htmlBody = htmlBody:gsub('<exit_message/>', minetest.formspec_escape(modMinerTrade.translate("Press <b>ESC</b> to exit this screen!")))
htmlBody = htmlBody:gsub('<transfer_proof/>', minetest.formspec_escape(title))
htmlBody = htmlBody:gsub('<doc_data/>', minetest.formspec_escape(docData))
htmlBody = htmlBody:gsub('<transfer_auth/>', minetest.formspec_escape(Auth))
htmlBody = htmlBody:gsub('<minetest_bank/>', core.formspec_escape(modMinerTrade.translate("MINETEST BANK")))
htmlBody = htmlBody:gsub('AUTHENTICATION HASH', core.formspec_escape(modMinerTrade.translate("AUTHENTICATION HASH")))
htmlBody = htmlBody:gsub('<exit_message/>', core.formspec_escape(modMinerTrade.translate("Press <b>ESC</b> to exit this screen!")))
htmlBody = htmlBody:gsub('<transfer_proof/>', core.formspec_escape(title))
htmlBody = htmlBody:gsub('<doc_data/>', core.formspec_escape(docData))
htmlBody = htmlBody:gsub('<transfer_auth/>', core.formspec_escape(Auth))
--]]
modMinerTrade.addPaperPrinted(player, itemDescription, htmlBody)
@ -247,13 +250,13 @@ modMinerTrade.addTransferProof_v1 = function(player, accountname, txtBeneficiary
local invPlayer = player:get_inventory()
if invPlayer:room_for_item("main", objProof) then-- verifica se compartimento de Recebimento de pagamento do vendedor tem espaço
invPlayer:add_item("main", objProof)
minetest.chat_send_player(playername,
core.chat_send_player(playername,
core.colorize("#00FF00", "["..modMinerTrade.translate("ATM").."]: ")
..modMinerTrade.translate("Transfer successful!")
)
else
minetest.add_item(player:get_pos(), objProof)
minetest.chat_send_player(playername,
core.add_item(player:get_pos(), objProof)
core.chat_send_player(playername,
core.colorize("#00FF00", "["..modMinerTrade.translate("ATM").."]: ")
..core.colorize("#FF0000",
modMinerTrade.translate("The Transfer Proof was left on the floor because '%s' inventory has no free space."):format(playername)
@ -263,7 +266,7 @@ modMinerTrade.addTransferProof_v1 = function(player, accountname, txtBeneficiary
end
modMinerTrade.getProofStack = function(playername, accountname, txtBeneficiary, txtValue, txtReason)
local player = minetest.get_player_by_name(playername)
local player = core.get_player_by_name(playername)
if player ~= nil and player:is_player() then
local lpp = 14 -- Lines per book's page
local max_text_size = 10000
@ -289,9 +292,9 @@ modMinerTrade.getProofStack = function(playername, accountname, txtBeneficiary,
.."\n"..modMinerTrade.translate("Value")..": "..txtValue.." minercash"
.."\n"..modMinerTrade.translate("Transfer Reason")..": "..txtReason
local Auth = minetest.get_password_hash(
local Auth = core.get_password_hash(
modMinerTrade.getSalt_Hash(),
minetest.encode_base64(myDocument:trim())
core.encode_base64(myDocument:trim())
)
data.text = ""
.."\n"..myDocument:trim()
@ -371,50 +374,50 @@ modMinerTrade.showAccountBank = {
--.."background[5.0,-0.25;10,10;default_steel_block.png^text_atm_front.png]"
.. "box[0.00,0.10;5.50,9.5;#000000]"
.. "button[0.25,0.50;5.00,0.5;btnBalance;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BALANCE"))).."]"
.. "button[0.25,1.25;5.00,0.5;btnStatement;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("STATEMENT"))).."]"
.. "button[0.25,0.50;5.00,0.5;btnBalance;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BALANCE"))).."]"
.. "button[0.25,1.25;5.00,0.5;btnStatement;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("STATEMENT"))).."]"
if type(accountmode) == "string" and ( --Aacesso público à contas públicas não tem transferência.
accountmode == "atm"
or accountmode == "online"
or (
accountmode == "public_access" and (
minetest.get_player_privs(playername).mayor
or (minetest.global_exists("modEUrn") and modEUrn.getPresidentName()==playername)
core.get_player_privs(playername).mayor
or (core.global_exists("modEUrn") and modEUrn.getPresidentName()==playername)
)
)
)
then
formspec = formspec
.. "button[0.25,3.50;5.00,0.5;btnTransfers;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("TRANSFERS"))).."]"
.. "button[0.25,3.50;5.00,0.5;btnTransfers;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("TRANSFERS"))).."]"
end
if type(accountmode) == "string" and (accountmode == "atm" or accountmode == "public_access") then
formspec = formspec
.. "button[0.25,2.00;5.00,0.5;btnDeposits;"..minetest.formspec_escape(core.colorize("#FFFFF", modMinerTrade.translate("DEPOSITS"))).."]"
.. "button[0.25,2.00;5.00,0.5;btnDeposits;"..core.formspec_escape(core.colorize("#FFFFF", modMinerTrade.translate("DEPOSITS"))).."]"
end
if type(accountmode) == "string" and accountmode == "atm"
then
formspec = formspec
.. "button[0.25,2.75;5.00,0.5;btnWithdrawals;"..minetest.formspec_escape(core.colorize("#FFFFF", modMinerTrade.translate("WITHDRAWALS"))).."]" -- [DINHEIRO E CHECK]
.. "button[0.25,2.75;5.00,0.5;btnWithdrawals;"..core.formspec_escape(core.colorize("#FFFFF", modMinerTrade.translate("WITHDRAWALS"))).."]" -- [DINHEIRO E CHECK]
end
if minetest.get_player_privs(playername).developer then
if core.get_player_privs(playername).developer then
formspec = formspec
.. "button[0.25,5.00;5.00,0.5;btnCreditCard;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("CREDIT CARD"))).."]" -- [EXPEDIR E MUDAR SENHA]
.. "button[0.25,4.25;5.00,0.5;btnLoans;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("LOANS"))).."]" --Emprestimos
.. "button[0.25,5.75;5.00,0.5;btnLottery;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("LOTTERY"))).."]" --Lotérica
.. "button[0.25,6.50;5.00,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[0.25,5.00;5.00,0.5;btnCreditCard;"..core.formspec_escape(core.colorize("#888888", modMinerTrade.translate("CREDIT CARD"))).."]" -- [EXPEDIR E MUDAR SENHA]
.. "button[0.25,4.25;5.00,0.5;btnLoans;"..core.formspec_escape(core.colorize("#888888", modMinerTrade.translate("LOANS"))).."]" --Emprestimos
.. "button[0.25,5.75;5.00,0.5;btnLottery;"..core.formspec_escape(core.colorize("#888888", modMinerTrade.translate("LOTTERY"))).."]" --Lotérica
.. "button[0.25,6.50;5.00,0.5;btnSetings;"..core.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.
end
if type(accountmode) == "string" and accountmode ~= "public_access"
then
formspec = formspec
.."button[0.25,6.50;5.00,0.5;btnPublicAccess;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("THE GOVERNMENT"))).."]"
.."button[0.25,6.50;5.00,0.5;btnPublicAccess;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("THE GOVERNMENT"))).."]"
end
formspec = formspec
.."button_exit[0.25,7.25;5.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.."button_exit[0.25,7.25;5.00,0.5;;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
--.. "box[6.0,0.25;9.5,9.5;#000000]"
.."background[6.0,0.25;9.5,9.5;text_atm_front.png]"
minetest.show_formspec(playername, "frmAtmMain", formspec)
core.show_formspec(playername, "frmAtmMain", formspec)
end,
frmBalance = function(playername) --FORMULÁRIO: SALDO
local accountname = modMinerTrade.bank.player[playername].focused_accountname
@ -439,22 +442,22 @@ modMinerTrade.showAccountBank = {
--..default.gui_slots
.. "box[0.00,0.10;5.50,9.5;#000000]"
.. "button[0.25,0.50;5.00,0.5;btnAtmMain;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.. "button[0.25,0.50;5.00,0.5;btnAtmMain;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.. "box[6.0,0.25;9.5,9.5;#00000088]"
.."background[6.0,0.25;9.5,9.5;text_atm_front.png]"
.. "textarea[6.75,1.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("NAME OF BANKING ACCOUNT HOLDER")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", accountname:upper())).."]"
.. "textarea[6.75,1.00;9.0,9.0;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("NAME OF BANKING ACCOUNT HOLDER")..":"))..";"..core.formspec_escape(core.colorize("#00FFFF", accountname:upper())).."]"
.. "textarea[6.75,2.50;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("ACCOUNT CREATED")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", account_created)).."]"
.. "textarea[6.75,2.50;9.0,9.0;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("ACCOUNT CREATED")..":"))..";"..core.formspec_escape(core.colorize("#00FFFF", account_created)).."]"
.. "textarea[6.75,4.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("FINANCIAL TRANSACTIONS")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", ("%02d"):format(totalTransactions).." transactions.")).."]"
.. "textarea[6.75,4.00;9.0,9.0;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("FINANCIAL TRANSACTIONS")..":"))..";"..core.formspec_escape(core.colorize("#00FFFF", ("%02d"):format(totalTransactions).." transactions.")).."]"
.. "textarea[6.75,5.50;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
.. "textarea[6.75,5.50;9.0,9.0;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..core.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
minetest.show_formspec(
core.show_formspec(
playername,
"frmAtmBalance",
formspec
@ -471,12 +474,12 @@ modMinerTrade.showAccountBank = {
--.."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"))).."]"
--.."button[0,0.0;4,0.5;btnAtmMain;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
--.."button_exit[0,3.0;4,0.5;;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.. "box[0.00,0.10;5.50,9.5;#000000]"
.. "button[0.25,0.50;5.00,0.5;btnAtmMain;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.. "button[0.25,0.50;5.00,0.5;btnAtmMain;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.. "box[6.0,0.25;9.5,9.5;#00000088]"
--.."background[5.0,0.25;9.5,9.5;text_atm_front.png]"
@ -485,9 +488,9 @@ modMinerTrade.showAccountBank = {
local isAccount = modMinerTrade.isExistAcount(accountname)
if isAccount then
formspec = formspec
.. "label[6.25,0.50;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("STATEMENT")..":")).."]"
--.. "label[5.25,2.50;"..minetest.formspec_escape(core.colorize("#00FFFF", msgStatement)).."]"
--"textarea[5.75,1.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("STATEMENT")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", msgStatement)).."]"
.. "label[6.25,0.50;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("STATEMENT")..":")).."]"
--.. "label[5.25,2.50;"..core.formspec_escape(core.colorize("#00FFFF", msgStatement)).."]"
--"textarea[5.75,1.00;9.0,9.0;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("STATEMENT")..":"))..";"..core.formspec_escape(core.colorize("#00FFFF", msgStatement)).."]"
local listStatement = modMinerTrade.getStatement(accountname)
local plusStatement = "#888,"..modMinerTrade.translate("")..","..modMinerTrade.translate("WHEN")..","..modMinerTrade.translate("VALUE")
@ -500,9 +503,9 @@ modMinerTrade.showAccountBank = {
--local line = oneStatement.when.." | "..sign..oneStatement.value.." minercash."
local line = "#FFF,"
..(("%03d"):format(i))..","
..minetest.formspec_escape(oneStatement.when)
..core.formspec_escape(oneStatement.when)
..","
..minetest.formspec_escape(sign..("%02d"):format(oneStatement.value).." MT$.")
..core.formspec_escape(sign..("%02d"):format(oneStatement.value).." MT$.")
if plusStatement == "" then
plusStatement = line
else
@ -517,9 +520,9 @@ modMinerTrade.showAccountBank = {
sign = "+"
end
plusStatement = plusStatement..",#FFFF00,,"
--..minetest.formspec_escape(os.date("%Y-%B-%d %Hh:%Mm:%Ss"))
..minetest.formspec_escape(modMinerTrade.translate("TOTAL")..": ")
..minetest.formspec_escape(sign..("%02d"):format(value).." minercash.")
--..core.formspec_escape(os.date("%Y-%B-%d %Hh:%Mm:%Ss"))
..core.formspec_escape(modMinerTrade.translate("TOTAL")..": ")
..core.formspec_escape(sign..("%02d"):format(value).." minercash.")
..","
end
--]]
@ -541,13 +544,13 @@ modMinerTrade.showAccountBank = {
end
formspec = formspec
.."textarea[6.75,8.50;9.0,1.5;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("TRANSACTION DETAILS")..":"))..";"
..minetest.formspec_escape(core.colorize("#00FFFF", msgStatement))
.."textarea[6.75,8.50;9.0,1.5;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("TRANSACTION DETAILS")..":"))..";"
..core.formspec_escape(core.colorize("#00FFFF", msgStatement))
.."]"
minetest.show_formspec(
core.show_formspec(
playername,
"frmAtmStatement",
formspec
@ -563,27 +566,27 @@ modMinerTrade.showAccountBank = {
--..default.gui_slots
.. "box[0.00,0.10;5.50,9.5;#000000]"
.. "button[0.25,0.50;5.00,0.5;btnAtmMain;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.. "button[0.25,0.50;5.00,0.5;btnAtmMain;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.."background[6.0,0.25;9.5,9.5;text_atm_front.png]"
.. "box[6.0,0.25;9.5,9.5;#000000CC]"
.. "label[6.75,0.75;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("SELECT BANK WITHDRAWAL METHOD")..":")).."]"
--.. "textarea[5.75,1.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
--.. "button[6.25,1.50;1.00,1.00;btnAtmMain;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.. "label[6.75,0.75;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("SELECT BANK WITHDRAWAL METHOD")..":")).."]"
--.. "textarea[5.75,1.00;9.0,9.0;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..core.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
--.. "button[6.25,1.50;1.00,1.00;btnAtmMain;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
--.."style_type[image_button;bgcolor=#00000000;border=false]"
--.."style[btnMinercoin;bgimg=sbl_save.png;bgimg_hovered=sbl_save_pressed.png;bgimg_pressed=sbl_save_pressed.png;border=false]"
.. "label[9.25,3.25;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("MINERCASH"))).."]"
.."tooltip[btnMinercoin;"..minetest.formspec_escape(modMinerTrade.translate("Withdrawals in minercash."))..";#CCCC0088;#000000]"
.. "label[9.25,3.25;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("MINERCASH"))).."]"
.."tooltip[btnMinercoin;"..core.formspec_escape(modMinerTrade.translate("Withdrawals in minercash."))..";#CCCC0088;#000000]"
.."image_button[7.25,2.50;2.00,2.00;obj_minercoin.png;btnGiveCash;]"
.. "label[9.25,5.75;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BANK CHECK"))).."]"
.."tooltip[btnMinercoin;"..minetest.formspec_escape(modMinerTrade.translate("Withdrawals in bank check."))..";#CCCC0088;#000000]"
.. "label[9.25,5.75;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BANK CHECK"))).."]"
.."tooltip[btnMinercoin;"..core.formspec_escape(modMinerTrade.translate("Withdrawals in bank check."))..";#CCCC0088;#000000]"
.."image_button[7.25,5.00;2.00,2.00;obj_bank_check.png;btnGiveCheck;]"
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
minetest.show_formspec(playername, "frmAtmWithdrawals", formspec)
core.show_formspec(playername, "frmAtmWithdrawals", formspec)
end,
frmGiveCash = function(playername, txtValue, msgDetails) --FORMULÁRIO: SAQUE EM DINHEIRO
local accountname = modMinerTrade.bank.player[playername].focused_accountname
@ -603,13 +606,13 @@ modMinerTrade.showAccountBank = {
--..default.gui_slots
.. "box[0.00,0.10;5.50,9.5;#000000]"
.. "button[0.25,0.50;5.00,0.5;btnWithdrawals;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.. "button[0.25,0.50;5.00,0.5;btnWithdrawals;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.."background[6.0,0.25;9.5,9.5;text_atm_front.png]"
.. "box[6.0,0.25;9.5,9.5;#000000CC]"
.. "textarea[6.75,1.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
.. "textarea[6.75,1.00;9.0,9.0;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..core.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
if modMinerTrade.isExistAcount(accountname) then
if txtValue == nil or txtValue == "" then
@ -619,28 +622,28 @@ modMinerTrade.showAccountBank = {
msgDetails = modMinerTrade.translate("Write the value that want to withdrawal!")
end
formspec = formspec
--.. "label[5.25,0.50;"..minetest.formspec_escape(core.colorize("#00FFFF", "WITHDRAWAL IN MINERCASH:")).."]"
--.. "label[5.25,0.50;"..core.formspec_escape(core.colorize("#00FFFF", "WITHDRAWAL IN MINERCASH:")).."]"
.."field[7.00,3.50;3.00,0.50;txtValue;"
..minetest.formspec_escape(
..core.formspec_escape(
core.colorize(
"#00FFFF",
modMinerTrade.translate("VALUE")..":"
)
)..";"
..minetest.formspec_escape(txtValue)
..core.formspec_escape(txtValue)
.."]"
.. "button[9.85,3.00;4.00,1.00;btnAtmGive;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("WITHDRAWAL"))).."]"
.. "button[9.85,3.00;4.00,1.00;btnAtmGive;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("WITHDRAWAL"))).."]"
.."textarea[6.75,8.50;9.0,1.5;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("DETAILS")..":"))..";"
..minetest.formspec_escape(core.colorize("#00FFFF", msgDetails))
.."textarea[6.75,8.50;9.0,1.5;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("DETAILS")..":"))..";"
..core.formspec_escape(core.colorize("#00FFFF", msgDetails))
.."]"
end
minetest.show_formspec(playername, "frmAtmGiveCash", formspec)
core.show_formspec(playername, "frmAtmGiveCash", formspec)
end,
frmDeposits = function(playername) --FORMULÁRIO: DEPÓSITOS
local accountname = modMinerTrade.bank.player[playername].focused_accountname
-- playername = player:get_player_name()
local newInv = minetest.create_detached_inventory("deposits_"..playername, {
local newInv = core.create_detached_inventory("deposits_"..playername, {
-- Called when a player wants to move items inside the inventory
allow_move = function(inv, from_list, from_index, to_list, to_index, count, player)
@ -670,11 +673,11 @@ modMinerTrade.showAccountBank = {
-- Called after the actual action has happened, according to what was allowed.
on_move = function(inv, from_list, from_index, to_list, to_index, count, player)
--modMinerTrade.setSafeInventory(playername, inv:get_list("safe"))
--minetest.log('action',playername.." colocou "..stack:get_count().." '"..stack:get_name().."' em seu cofre!")
--core.log('action',playername.." colocou "..stack:get_count().." '"..stack:get_name().."' em seu cofre!")
end,
on_put = function(inv, listname, index, stack, player)
--modMinerTrade.setSafeInventory(playername, inv:get_list("safe"))
--minetest.log('action',modMinerTrade.translate("Player '%s' has placed %02d '%s' in his safe!"):format(playername, stack:get_count(), stack:get_name()))
--core.log('action',modMinerTrade.translate("Player '%s' has placed %02d '%s' in his safe!"):format(playername, stack:get_count(), stack:get_name()))
--local accountname = player:get_player_name()
if modMinerTrade.checkValidStack(stack) >= 1 then
local stackValue = modMinerTrade.getValueStack(stack)
@ -697,7 +700,7 @@ modMinerTrade.showAccountBank = {
end,
on_take = function(inv, listname, index, stack, player)
--modMinerTrade.setSafeInventory(playername, inv:get_list("safe"))
--minetest.log('action',modMinerTrade.translate("Player '%s' has removed %02d '%s' in his safe!"):format(playername, stack:get_count(), stack:get_name()))
--core.log('action',modMinerTrade.translate("Player '%s' has removed %02d '%s' in his safe!"):format(playername, stack:get_count(), stack:get_name()))
end,
})
@ -720,35 +723,35 @@ modMinerTrade.showAccountBank = {
--..default.gui_slots
.. "box[0.00,0.10;5.50,9.5;#000000]"
.. "button[0.25,0.50;5.00,0.5;btnAtmMain;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.. "button[0.25,0.50;5.00,0.5;btnAtmMain;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.."background[6.0,0.25;9.5,9.5;text_atm_front.png]"
.. "box[6.0,0.25;9.5,9.5;#000000AA]"
.. "label[6.50,0.50;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BANK DEPOSIT") )).."]"
--.. "textarea[5.75,1.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
.. "label[6.50,0.50;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BANK DEPOSIT") )).."]"
--.. "textarea[5.75,1.00;9.0,9.0;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..core.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
.. "box[6.5,1.50;8.5,1.05;#00FF0044]"
.."textarea[7.25,2.00;9.0,2.0;;"
..minetest.formspec_escape(core.colorize("#FFFF00", modMinerTrade.translate("YOUR BALANCE")..":"))..";"
..minetest.formspec_escape(core.colorize("#FFFFFF", minetest.formspec_escape(msgBalance)))
..core.formspec_escape(core.colorize("#FFFF00", modMinerTrade.translate("YOUR BALANCE")..":"))..";"
..core.formspec_escape(core.colorize("#FFFFFF", core.formspec_escape(msgBalance)))
.."]"
--listcolors[slot_bg_normal;slot_bg_hover;slot_border;tooltip_bgcolor;tooltip_fontcolor]
.."listcolors[#88888866;#666666;#CCCCCC;#444444;#FFFFFF]"
.."label[7.00,3.00;"..minetest.formspec_escape(modMinerTrade.translate("ATM entrance"))..":]"
.."label[7.00,3.00;"..core.formspec_escape(modMinerTrade.translate("ATM entrance"))..":]"
.."image[9.00,3.35;2,2;obj_minercoin.png]"
.."image[10.50,3.75;1,1;gui_arrow.png^[transformR270]"
.."list[detached:"..minetest.formspec_escape("deposits_"..playername)..";deposit;11.50,3.75;1,1;]"
.."list[detached:"..core.formspec_escape("deposits_"..playername)..";deposit;11.50,3.75;1,1;]"
--.."button[3,2.0;2,1;exchange;"..minetest.formspec_escape(modMinerTrade.translate("DEPOSIT")).."]"
--.."button[3,2.0;2,1;exchange;"..core.formspec_escape(modMinerTrade.translate("DEPOSIT")).."]"
.."label[7.00,5.00;"..minetest.formspec_escape(modMinerTrade.translate("Your Inventory"))..":]"
.."label[7.00,5.00;"..core.formspec_escape(modMinerTrade.translate("Your Inventory"))..":]"
.."list[current_player;main;7.00,5.50;8,4;]"
minetest.show_formspec(playername, "frmAtmDeposits", formspec)
core.show_formspec(playername, "frmAtmDeposits", formspec)
end,
frmTransfer = function(playername) --FORMULÁRIO: TRANSFERÊNCIAS
local accountname = modMinerTrade.bank.player[playername].focused_accountname
@ -768,13 +771,13 @@ modMinerTrade.showAccountBank = {
--..default.gui_slots
.. "box[0.00,0.10;5.50,9.5;#000000]"
.. "button[0.25,0.50;5.00,0.5;btnAtmMain;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.. "button[0.25,0.50;5.00,0.5;btnAtmMain;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.."background[6.0,0.25;9.5,9.5;text_atm_front.png]"
.. "box[6.0,0.25;9.5,9.5;#000000CC]"
.. "textarea[6.75,1.00;9.0,9.0;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
.. "textarea[6.75,1.00;9.0,9.0;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..core.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]"
if modMinerTrade.isExistAcount(accountname) then
if txtBeneficiary == nil or type(txtBeneficiary) ~= "string" then
@ -790,41 +793,41 @@ modMinerTrade.showAccountBank = {
msgDetails = modMinerTrade.translate("Write the 'beneficiary player name' and the 'value in minercash' that want to transfer!")
end
formspec = formspec
--.. "label[5.25,0.50;"..minetest.formspec_escape(core.colorize("#00FFFF", "WITHDRAWAL IN MINERCASH:")).."]"
--.. "label[5.25,0.50;"..core.formspec_escape(core.colorize("#00FFFF", "WITHDRAWAL IN MINERCASH:")).."]"
.."field[7.00,3.50;6.00,0.50;txtBeneficiary;"
..minetest.formspec_escape(
..core.formspec_escape(
core.colorize(
"#00FFFF",
modMinerTrade.translate("BENEFICIARY NAME")..":"
)
)..";"
..minetest.formspec_escape(txtBeneficiary)
..core.formspec_escape(txtBeneficiary)
.."]"
.."field[7.00,5.00;3.00,0.50;txtValue;"
..minetest.formspec_escape(
..core.formspec_escape(
core.colorize(
"#00FFFF",
modMinerTrade.translate("VALUE")..":"
)
)..";"
..minetest.formspec_escape(txtValue)
..core.formspec_escape(txtValue)
.."]"
.."field[7.00,6.50;9.00,0.50;txtReason;"
..minetest.formspec_escape(
..core.formspec_escape(
core.colorize(
"#00FFFF",
modMinerTrade.translate("REASON OF TRANSFER")..":"
)
)..";"
..minetest.formspec_escape(txtReason)
..core.formspec_escape(txtReason)
.."]"
.. "button[9.85,7.50;4.00,1.00;btnAtmTransfer;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("DO TRANSFER"))).."]"
.. "button[9.85,7.50;4.00,1.00;btnAtmTransfer;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("DO TRANSFER"))).."]"
.."textarea[6.75,8.50;9.0,1.5;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("DETAILS")..":"))..";"
..minetest.formspec_escape(core.colorize("#00FFFF", msgDetails))
.."textarea[6.75,8.50;9.0,1.5;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("DETAILS")..":"))..";"
..core.formspec_escape(core.colorize("#00FFFF", msgDetails))
.."]"
end
minetest.show_formspec(playername, "frmAtmTransfer", formspec)
core.show_formspec(playername, "frmAtmTransfer", formspec)
end,
frmLoanFunctions = function(playername) --FORMULÁRIO: FUNÇÕES DE EMPRESTIMO
local accountname = modMinerTrade.bank.player[playername].focused_accountname
@ -836,28 +839,28 @@ modMinerTrade.showAccountBank = {
--..default.gui_slots
.. "box[0.00,0.10;5.50,9.5;#000000]"
.. "button[0.25,0.50;5.00,0.5;btnAtmMain;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.. "button[0.25,0.50;5.00,0.5;btnAtmMain;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]"
.."button_exit[0.25,6.50;5.00,0.5;;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]"
.."background[6.0,0.25;9.5,9.5;text_atm_front.png]"
.. "box[6.0,0.25;9.5,9.5;#000000CC]"
.. "label[6.75,0.75;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("LOAN FUNCTIONS")..":")).."]"
.. "label[6.75,0.75;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("LOAN FUNCTIONS")..":")).."]"
.. "label[9.25,3.25;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("NEW LOANS AVAILABLE"))).."]"
.."tooltip[btnMinercoin;"..minetest.formspec_escape(modMinerTrade.translate("List of all loan offers that you can take advantage of at low cost."))..";#CCCC0088;#000000]"
.. "label[9.25,3.25;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("NEW LOANS AVAILABLE"))).."]"
.."tooltip[btnMinercoin;"..core.formspec_escape(modMinerTrade.translate("List of all loan offers that you can take advantage of at low cost."))..";#CCCC0088;#000000]"
.."image_button[7.25,2.50;2.00,2.00;obj_moneysuitcase.png;btnLoansAvailable;]"
.. "label[9.25,5.75;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("LOANS WITH PENDING RETURNS"))).."]"
.."tooltip[btnMinercoin;"..minetest.formspec_escape(modMinerTrade.translate("List of all loans you have taken and that are still pending repayment."))..";#CCCC0088;#000000]"
.. "label[9.25,5.75;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("LOANS WITH PENDING RETURNS"))).."]"
.."tooltip[btnMinercoin;"..core.formspec_escape(modMinerTrade.translate("List of all loans you have taken and that are still pending repayment."))..";#CCCC0088;#000000]"
.."image_button[7.25,5.00;2.00,2.00;obj_credit_card.png;btnLoansPendingReturns;]"
.. "label[9.25,8.25;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("RULES FOR LOANS"))).."]"
.."tooltip[btnMinercoin;"..minetest.formspec_escape(modMinerTrade.translate("List of all rules for you to have access to a loan."))..";#CCCC0088;#000000]"
.. "label[9.25,8.25;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("RULES FOR LOANS"))).."]"
.."tooltip[btnMinercoin;"..core.formspec_escape(modMinerTrade.translate("List of all rules for you to have access to a loan."))..";#CCCC0088;#000000]"
.."image_button[7.25,7.50;2.00,2.00;obj_bank_check.png;btnLoansRules;]"
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
minetest.show_formspec(playername, "frmAtmLoanFunctions", formspec)
core.show_formspec(playername, "frmAtmLoanFunctions", formspec)
end,
}
@ -903,8 +906,8 @@ end
modMinerTrade.delDetachedInventory = function(playername)
--core.detached_inventories["safe_"..ownername] = nil
return minetest.remove_detached_inventory("deposits_"..playername)
--return minetest.remove_detached_inventory_raw("safe_"..ownername)
return core.remove_detached_inventory("deposits_"..playername)
--return core.remove_detached_inventory_raw("safe_"..ownername)
end
@ -917,8 +920,8 @@ modMinerTrade.onReceiveFields = function(player, formname, fields)
elseif fields.quit then
--são funções importantíssimas para não perder inventário do jogador e nem calça legging no servidor.
modMinerTrade.doBankSave()
local isDeleted = modMinerTrade.delDetachedInventory(playername)
modMinerTrade.debug("modMinerTrade.onReceiveFields() >>> Database saved and delete detached inventory... Done ["..dump(isDeleted).."]")
--local isDeleted = modMinerTrade.delDetachedInventory(playername)
--modMinerTrade.debug("modMinerTrade.onReceiveFields() >>> Database saved and delete detached inventory... Done ["..dump(isDeleted).."]")
else
if formname == "frmAtmMain" then
if fields.btnBalance ~= nil then
@ -941,10 +944,11 @@ modMinerTrade.onReceiveFields = function(player, formname, fields)
modMinerTrade.showAccountBank.inPublicAccess(playername)
end
elseif formname == "frmAtmStatement" then
--modMinerTrade.debug("modMinerTrade.onReceiveFields() >>> player = "..playername.." | formname = "..formname.." | fields = "..dump(fields))
modMinerTrade.debug("modMinerTrade.onReceiveFields() >>> player = "..playername.." | formname = "..formname.." | fields = "..dump(fields))
if fields.fldStatement ~= nil then
local tblStatement = modMinerTrade.getStatement(playername)
local fldStatement = minetest.explode_table_event(fields.fldStatement)
local fldStatement = core.explode_table_event(fields.fldStatement)
modMinerTrade.debug("modMinerTrade.onReceiveFields() >>> fldStatement = "..dump(fldStatement))
if fldStatement.row ~= nil and type(fldStatement.row) == "number" and fldStatement.row >= 2 and fldStatement.row <= #tblStatement+1 then
--modMinerTrade.debug("modMinerTrade.onReceiveFields() >>> fldStatement = "..dump(fldStatement))
modMinerTrade.showAccountBank.frmStatement(playername, fldStatement.row)
@ -973,7 +977,7 @@ modMinerTrade.onReceiveFields = function(player, formname, fields)
if modMinerTrade.isExistAcount(accountname) then
local myBalance = modMinerTrade.getBalance(accountname)
if tonumber(myValue) <= myBalance then
local player = minetest.get_player_by_name(playername)
local player = core.get_player_by_name(playername)
if player ~= nil and player:is_player() then
local delivered = 0
local items = modMinerTrade.convValueToItemList(tonumber(myValue))
@ -1030,7 +1034,7 @@ modMinerTrade.onReceiveFields = function(player, formname, fields)
elseif formname == "frmAtmTransfer" then
if fields.btnAtmTransfer ~= nil then
--modMinerTrade.debug("modMinerTrade.onReceiveFields() >>> player = "..playername.." | formname = "..formname.." | fields = "..dump(fields))
local player = minetest.get_player_by_name(playername)
local player = core.get_player_by_name(playername)
if player ~= nil and player:is_player() then
local accountname = modMinerTrade.bank.player[playername].focused_accountname
@ -1127,11 +1131,11 @@ end
--###############################################################################################################
minetest.register_node("minertrade:atm", {
core.register_node("minertrade:atm", {
description = core.colorize("#00FF00",
modMinerTrade.translate("PUBLIC ATM")
).."\n\t* "..modMinerTrade.translate("Deposit and Withdraw your minercash into your bank account."),
--inventory_image = minetest.inventorycube("text_atm_front_1.png"),
--inventory_image = core.inventorycube("text_atm_front_1.png"),
--inventory_image = "text_atm_front_1.png",
paramtype = "light",
sunlight_propagates = true,
@ -1180,27 +1184,27 @@ minetest.register_node("minertrade:atm", {
local posAbove = pointed_thing.above --acima
local posUnder = pointed_thing.under --abaixo
if not placer or not placer:is_player() or
not minetest.registered_nodes[minetest.get_node(posAbove).name].buildable_to
not core.registered_nodes[core.get_node(posAbove).name].buildable_to
then --Verifica se pode construir sobre os objetos construiveis
return itemstack
end
local nodeUnder = minetest.get_node(posUnder)
if minetest.registered_nodes[nodeUnder.name].on_rightclick then --Verifica se o itema na mao do jogador tem funcao rightclick
return minetest.registered_nodes[nodeUnder.name].on_rightclick(posUnder, nodeUnder, placer, itemstack)
local nodeUnder = core.get_node(posUnder)
if core.registered_nodes[nodeUnder.name].on_rightclick then --Verifica se o itema na mao do jogador tem funcao rightclick
return core.registered_nodes[nodeUnder.name].on_rightclick(posUnder, nodeUnder, placer, itemstack)
end
if
modMinerTrade.canInteract(playername)
or modMinerTrade.getNodesInRange(posAbove, 5, "minertrade:dispensingmachine") >= 1
then
local facedir = minetest.dir_to_facedir(placer:get_look_dir())
--minetest.chat_send_player(playername, "[ATM] aaaaaa")
minetest.set_node(posAbove, {
local facedir = core.dir_to_facedir(placer:get_look_dir())
--core.chat_send_player(playername, "[ATM] aaaaaa")
core.set_node(posAbove, {
name = "minertrade:atm",
param2 = facedir,
})
local meta = minetest.get_meta(posAbove)
local meta = core.get_meta(posAbove)
meta:set_string("infotext",
--[[
modMinerTrade.translate(
@ -1219,7 +1223,7 @@ minetest.register_node("minertrade:atm", {
end
itemstack:take_item() -- itemstack:take_item() = Ok
else
minetest.chat_send_player(playername,
core.chat_send_player(playername,
core.colorize("#00ff00", "["..modMinerTrade.translate("ATM").."]: ")
..modMinerTrade.translate("You can not install this 'ATM' too far from a 'Dispensing Machine'!")
)
@ -1231,7 +1235,7 @@ minetest.register_node("minertrade:atm", {
on_rightclick = function(pos, node, clicker)
local clickername = clicker:get_player_name()
local meta = minetest.get_meta(pos)
local meta = core.get_meta(pos)
--meta:set_string("infotext", modMinerTrade.translate("PUBLIC ATM\n* Save your money in the ATM, and withdraw your money in your Personal Safe or other ATM in the shops scattered around the map."))
local opentime = tonumber(meta:get_string("opentime")) or 0
local now = os.time() --Em milisegundos
@ -1248,9 +1252,9 @@ minetest.register_node("minertrade:atm", {
--modMinerTrade.showAccountBank.frmMain(clickername)
modMinerTrade.showAccountBank.inAtm(clickername, clickername)
else
--minetest.sound_play("sfx_failure", {object=clicker, max_hear_distance=5.0,})
--core.sound_play("sfx_failure", {object=clicker, max_hear_distance=5.0,})
modMinerTrade.doSoundPlayer(clickername, "sfx_failure", 5)
minetest.chat_send_player(clickername,
core.chat_send_player(clickername,
core.colorize("#00ff00", "["..modMinerTrade.translate("ATM").."]: ")
..modMinerTrade.translate(
"The ATM will only run %02d seconds after it is installed!"
@ -1262,7 +1266,7 @@ minetest.register_node("minertrade:atm", {
})
--[[ --]]
minetest.register_craft({
core.register_craft({
output = 'minertrade:atm',
recipe = {
{"default:steel_ingot" ,"default:steel_ingot" ,"default:steel_ingot"},
@ -1271,24 +1275,24 @@ minetest.register_craft({
}
})
--]]
minetest.register_alias("atm","minertrade:atm")
minetest.register_alias(modMinerTrade.translate("atm"),"minertrade:atm")
core.register_alias("atm","minertrade:atm")
core.register_alias(modMinerTrade.translate("atm"),"minertrade:atm")
minetest.register_on_player_receive_fields(function(sender, formname, fields)
core.register_on_player_receive_fields(function(sender, formname, fields)
return modMinerTrade.onReceiveFields(sender, formname, fields)
end)
minetest.register_on_joinplayer(function(player)
core.register_on_joinplayer(function(player)
local playername = player:get_player_name()
if not modMinerTrade.isExistAcount(playername) then
modMinerTrade.createAcount(playername)
end
end)
minetest.register_on_leaveplayer(function(player)
core.register_on_leaveplayer(function(player)
modMinerTrade.doBankSave()
end)
minetest.register_on_shutdown(function()
core.register_on_shutdown(function()
modMinerTrade.doBankSave()
end)