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) modMinerTrade.debug = function(text, playername)
if text ~= nil if text ~= nil
and type(text) == "string" and type(text) == "string"
and text ~= "" and text ~= ""
then then
if minetest.settings:get_bool("minertrade.debug") then if core.settings:get_bool("minertrade.debug") then
if playername ~= nil if playername ~= nil
and type(playername) == "string" and type(playername) == "string"
and playername ~= "" and playername ~= ""
then 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 if player ~=nil and player:is_player() then
minetest.chat_send_player( core.chat_send_player(
playername, text playername, text
) )
minetest.log('action',"["..modMinerTrade.modName:upper()..":DEBUG:"..playername.."] "..text) core.log('warning',"["..modMinerTrade.modName:upper()..":DEBUG:"..playername.."] "..text)
else else
minetest.log('error', core.log('error',
"["..modMinerTrade.modName:upper()..":DEBUG] " "["..modMinerTrade.modName:upper()..":DEBUG] "
..modSoundChat.translate( ..modSoundChat.translate(
"Unable to address debug for player '%s'." "Unable to address debug for player '%s'."
):format(dump(playername)) ):format(dump(playername))
) )
minetest.log('action',"["..modMinerTrade.modName:upper()..":DEBUG] "..text) core.log('warning',"["..modMinerTrade.modName:upper()..":DEBUG] "..text)
end end
else else
minetest.chat_send_all(text) core.chat_send_all(text)
minetest.log('action',"["..modMinerTrade.modName:upper()..":DEBUG] "..text) core.log('warning',"["..modMinerTrade.modName:upper()..":DEBUG] "..text)
end end
end 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 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 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 = core.find_nodes_in_area(minp, maxp, nodenames)
--local nodes = minetest.env:find_nodes_in_area(minp, maxp, nodenames) --deprecado --local nodes = core.env:find_nodes_in_area(minp, maxp, nodenames) --deprecado
return #nodes return #nodes
end end
modMinerTrade.doSoundPlayer = function(playername, sfxFile, intDistace) modMinerTrade.doSoundPlayer = function(playername, sfxFile, intDistace)
if intDistace == nil or (type(intDistace) == "number" and intDistace>= 0) then if intDistace == nil or (type(intDistace) == "number" and intDistace>= 0) then
if type(playername) == "string" and type(sfxFile) == "string" and playername ~= "" and sfxFile ~= "" 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 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 ¬¬) object = player, --Se retirar esta linha tocará para todos. (Provavelmente ¬¬)
gain = 1.0, -- 1.0 = Volume total gain = 1.0, -- 1.0 = Volume total
max_hear_distance = intDistace, max_hear_distance = intDistace,
@ -66,9 +66,9 @@ end
modMinerTrade.canInteract = function(meta, player) modMinerTrade.canInteract = function(meta, player)
if player:get_player_name() == meta:get_string("owner") if player:get_player_name() == meta:get_string("owner")
or minetest.get_player_privs(player:get_player_name()).server or core.get_player_privs(player:get_player_name()).server
or minetest.get_player_privs(player:get_player_name()).checkchest or core.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_modpath("tradelands") and modTradeLands.canInteract(player:getpos(), player:get_player_name()))
then then
return true return true
end end
@ -85,9 +85,9 @@ end
modMinerTrade.getPosMachineName = function(posMachine) modMinerTrade.getPosMachineName = function(posMachine)
if type(posMachine)=="table" and type(posMachine.x)=="number" and type(posMachine.y)=="number" and type(posMachine.z)=="number" then 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 else
minetest.log( core.log(
"error",("[modMinerTrade.getPosMachineName(posMachine='%s')] "):format(dump(posMachine)) "error",("[modMinerTrade.getPosMachineName(posMachine='%s')] "):format(dump(posMachine))
..modMinerTrade.translate("The '%s' parameter must be of the position type (x,y,z)!"):format("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 if type(value)=="number" and value>=0 then
modMinerTrade.machine_flags[posMachineName].lastalert = value modMinerTrade.machine_flags[posMachineName].lastalert = value
else else
minetest.log( core.log(
"error",("[modMinerTrade.setMachineFlagsAlert(posMachine='%s', value='%d')] "):format(dump(posMachine), dump(value)) "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") ..modMinerTrade.translate("The '%s' parameter must be of the non-empty string type!"):format("message")
) )
end end
else else
minetest.log( core.log(
"error",("[modMinerTrade.setMachineFlagsAlert(posMachine='%s', value='%s')] "):format(dump(posMachine), dump(dump)) "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") ..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 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 return modMinerTrade.machine_flags[posMachineName].lastalert
else else
minetest.log( core.log(
"error",("[modMinerTrade.getMachineFlagsAlert(posMachine='%s', value='%s')] "):format(dump(posMachine), dump(dump)) "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") ..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 end
modMinerTrade.sendMailMachine = function(posMachine, ownername, message) modMinerTrade.sendMailMachine = function(posMachine, ownername, message)
if minetest.get_modpath("correio") then if core.get_modpath("correio") then
local mailMachineInterval = (60*60) 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(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 if type(message)=="string" and message:trim()~="" then
local agora = os.time() local agora = os.time()
local macFlag = modMinerTrade.getMachineFlagsAlert(posMachine) local macFlag = modMinerTrade.getMachineFlagsAlert(posMachine)
@ -146,12 +146,12 @@ modMinerTrade.sendMailMachine = function(posMachine, ownername, message)
message:trim() message:trim()
) )
if carta~=nil then 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'!"): modMinerTrade.translate("A letter was sent by the dispensing machine '%s' to '%s' advising about '%s'!"):
format(modMinerTrade.getPosMachineName(posMachine), ownername , message) format(modMinerTrade.getPosMachineName(posMachine), ownername , message)
) )
else else
minetest.log( core.log(
"error",("[modMinerTrade.sendMailMachine(posMachine='%s', ownername='%s', message='%s')] "):format(dump(posMachine), dump(ownername), dump(message)) "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!") ..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) modMinerTrade.setMachineFlagsAlert(posMachine, agora)
end --if macFlag + mailMachineInterval < agora then end --if macFlag + mailMachineInterval < agora then
else else
minetest.log( core.log(
"error",("[modMinerTrade.sendMailMachine(posMachine='%s', ownername='%s', message='%s')] "):format(dump(posMachine), dump(ownername), dump(message)) "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") ..modMinerTrade.translate("The '%s' parameter must be of the non-empty string type!"):format("message")
) )
end end
else else
minetest.log( core.log(
"error",("[modMinerTrade.sendMailMachine(posMachine='%s', ownername='%s', message='%s')] "):format(dump(posMachine), dump(ownername), dump(message)) "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") ..modMinerTrade.translate("The '%s' parameter must be of the non-empty string type!"):format("ownername")
) )
end end
else else
minetest.log( core.log(
"error",("[modMinerTrade.sendMailMachine(posMachine='%s', ownername='%s', message='%s')] "):format(dump(posMachine), dump(ownername), dump(message)) "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") ..modMinerTrade.translate("The '%s' parameter must be of the position type (x,y,z)!"):format("posMachine")
) )
end end
end --if minetest.get_modpath("correio") then end --if core.get_modpath("correio") then
end end
modMinerTrade.errorDispensing = function(erroMessage, player, pos, ownername) modMinerTrade.errorDispensing = function(erroMessage, player, pos, ownername)
if type(erroMessage)=="string" and erroMessage:trim()~="" then if type(erroMessage)=="string" and erroMessage:trim()~="" then
if player:is_player() then if player:is_player() then
local playername = player:get_player_name() local playername = player:get_player_name()
minetest.chat_send_player(playername, core.colorize("#00ff00", "["..modMinerTrade.translate("DISPENSING MACHINE").."]: ")..erroMessage) core.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.sound_play("sfx_failure", {object=player, max_hear_distance=5.0,})
end end
if type(pos)~="nil" and type(ownername)=="string" and ownername:trim()~="" then if type(pos)~="nil" and type(ownername)=="string" and ownername:trim()~="" then
modMinerTrade.sendMailMachine(pos, ownername, erroMessage) modMinerTrade.sendMailMachine(pos, ownername, erroMessage)
end end
else else
minetest.log( core.log(
"error",("[modMinerTrade.errorDispensing(erroMessage='%s', player, pos, ownername)] "):format(dump(erroMessage)) "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") ..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."), description=modMinerTrade.translate("Can access evolving ATM functions."),
give_to_singleplayer=false, give_to_singleplayer=false,
}) })
@ -11,24 +11,24 @@ modMinerTrade.getUrlDatabase = function()
else else
extension = ".tbl" extension = ".tbl"
end end
return minetest.get_worldpath().."/minertrade"..extension return core.get_worldpath().."/minertrade"..extension
end end
modMinerTrade.doBankSave = function() modMinerTrade.doBankSave = function()
--modMinerTrade.debug("modMinerTrade.doBankSave() >>> "..modMinerTrade.getUrlDatabase()) --modMinerTrade.debug("modMinerTrade.doBankSave() >>> "..modMinerTrade.getUrlDatabase())
local file = io.open(modMinerTrade.getUrlDatabase(), "w") local file = io.open(modMinerTrade.getUrlDatabase(), "w")
if file then if file then
local content = minetest.serialize(modMinerTrade.bank) local content = core.serialize(modMinerTrade.bank)
--modMinerTrade.debug("modMinerTrade.doBankSave() >>> content = "..dump(content)) --modMinerTrade.debug("modMinerTrade.doBankSave() >>> content = "..dump(content))
if modMinerTrade.save_compressed then if modMinerTrade.save_compressed then
content = minetest.encode_base64(content) content = core.encode_base64(content)
end end
file:write(content) file:write(content)
file:close() 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 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
end end
@ -37,30 +37,30 @@ modMinerTrade.doBankLoad = function()
local file = io.open(modMinerTrade.getUrlDatabase(), "r") local file = io.open(modMinerTrade.getUrlDatabase(), "r")
if file then if file then
if modMinerTrade.save_compressed 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 else
modMinerTrade.bank = minetest.deserialize(file:read("*all")) modMinerTrade.bank = core.deserialize(file:read("*all"))
end end
--modMinerTrade.debug("modMinerTrade.doBankLoad() >>> modMinerTrade.bank = "..dump(modMinerTrade.bank)) --modMinerTrade.debug("modMinerTrade.doBankLoad() >>> modMinerTrade.bank = "..dump(modMinerTrade.bank))
file:close() file:close()
if not modMinerTrade.bank or type(modMinerTrade.bank) ~= "table" then 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 { } return { }
else 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 end
end end
modMinerTrade.getDelayToUse = function() modMinerTrade.getDelayToUse = function()
if modMinerTrade.delay_to_use == nil then 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 if modMinerTrade.delay_to_use == nil
or type(tonumber(modMinerTrade.delay_to_use)) ~= "number" or type(tonumber(modMinerTrade.delay_to_use)) ~= "number"
or tonumber(modMinerTrade.delay_to_use) < 1 or tonumber(modMinerTrade.delay_to_use) < 1
then then
modMinerTrade.delay_to_use = 300 -- 300 = 5 minutes 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
end end
return tonumber(modMinerTrade.delay_to_use) return tonumber(modMinerTrade.delay_to_use)
@ -68,7 +68,10 @@ end
modMinerTrade.canInteract = function(playername) modMinerTrade.canInteract = function(playername)
--local clickername = clicker:get_player_name() --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 return true
end end
return false return false
@ -120,14 +123,14 @@ modMinerTrade.addBalance = function(playername, value)
end end
modMinerTrade.getMaxStatements = function() --MÁXIMO DE EXTRATOS ARMAZENADOS. 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 if maxStatements == nil
or type(tonumber(maxStatements)) ~= "number" or type(tonumber(maxStatements)) ~= "number"
or tonumber(maxStatements) < 1 --Min or tonumber(maxStatements) < 1 --Min
or tonumber(maxStatements) > 300 --Max or tonumber(maxStatements) > 300 --Max
then then
maxStatements = 30 maxStatements = 30
minetest.settings:set("minertrade.bank.max_statements", tostring(maxStatements)) core.settings:set("minertrade.bank.max_statements", tostring(maxStatements))
end end
return tonumber(maxStatements) return tonumber(maxStatements)
end end
@ -182,7 +185,7 @@ end
modMinerTrade.getSalt_Hash = function() modMinerTrade.getSalt_Hash = function()
if modMinerTrade.bank.salt_hash == nil then 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 end
return modMinerTrade.bank.salt_hash return modMinerTrade.bank.salt_hash
end end
@ -191,7 +194,7 @@ modMinerTrade.addTransferProof_v2 = function(player, accountname, txtBeneficiary
local playername = player:get_player_name() local playername = player:get_player_name()
local when = os.date("%Y-%B-%d %Hh:%Mm:%Ss") local when = os.date("%Y-%B-%d %Hh:%Mm:%Ss")
local title = modMinerTrade.translate("TRANSFER PROOF") local title = modMinerTrade.translate("TRANSFER PROOF")
local itemDescription = minetest.colorize("#00FF00", title) local itemDescription = core.colorize("#00FF00", title)
.."\n"..modMinerTrade.translate("Reason: %s"):format( .."\n"..modMinerTrade.translate("Reason: %s"):format(
txtReason:sub(1, modMinerTrade.paperprinted.max_title_size) 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("Value")..": "..("%02d"):format(tonumber(txtValue)).." minercash"
.."\n"..modMinerTrade.translate("Transfer Reason")..": "..txtReason .."\n"..modMinerTrade.translate("Transfer Reason")..": "..txtReason
local Auth = minetest.get_password_hash( local Auth = core.get_password_hash(
modMinerTrade.getSalt_Hash(), modMinerTrade.getSalt_Hash(),
minetest.encode_base64(docData:trim()) core.encode_base64(docData:trim())
) )
local htmlBody = [[ local htmlBody = [[
@ -229,12 +232,12 @@ modMinerTrade.addTransferProof_v2 = function(player, accountname, txtBeneficiary
</center> </center>
]] ]]
--[[ ]] --[[ ]]
htmlBody = htmlBody:gsub('<minetest_bank/>', minetest.formspec_escape(modMinerTrade.translate("MINETEST BANK"))) htmlBody = htmlBody:gsub('<minetest_bank/>', core.formspec_escape(modMinerTrade.translate("MINETEST BANK")))
htmlBody = htmlBody:gsub('AUTHENTICATION HASH', minetest.formspec_escape(modMinerTrade.translate("AUTHENTICATION HASH"))) htmlBody = htmlBody:gsub('AUTHENTICATION HASH', core.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('<exit_message/>', core.formspec_escape(modMinerTrade.translate("Press <b>ESC</b> to exit this screen!")))
htmlBody = htmlBody:gsub('<transfer_proof/>', minetest.formspec_escape(title)) htmlBody = htmlBody:gsub('<transfer_proof/>', core.formspec_escape(title))
htmlBody = htmlBody:gsub('<doc_data/>', minetest.formspec_escape(docData)) htmlBody = htmlBody:gsub('<doc_data/>', core.formspec_escape(docData))
htmlBody = htmlBody:gsub('<transfer_auth/>', minetest.formspec_escape(Auth)) htmlBody = htmlBody:gsub('<transfer_auth/>', core.formspec_escape(Auth))
--]] --]]
modMinerTrade.addPaperPrinted(player, itemDescription, htmlBody) modMinerTrade.addPaperPrinted(player, itemDescription, htmlBody)
@ -247,13 +250,13 @@ modMinerTrade.addTransferProof_v1 = function(player, accountname, txtBeneficiary
local invPlayer = player:get_inventory() 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 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) invPlayer:add_item("main", objProof)
minetest.chat_send_player(playername, core.chat_send_player(playername,
core.colorize("#00FF00", "["..modMinerTrade.translate("ATM").."]: ") core.colorize("#00FF00", "["..modMinerTrade.translate("ATM").."]: ")
..modMinerTrade.translate("Transfer successful!") ..modMinerTrade.translate("Transfer successful!")
) )
else else
minetest.add_item(player:get_pos(), objProof) core.add_item(player:get_pos(), objProof)
minetest.chat_send_player(playername, core.chat_send_player(playername,
core.colorize("#00FF00", "["..modMinerTrade.translate("ATM").."]: ") core.colorize("#00FF00", "["..modMinerTrade.translate("ATM").."]: ")
..core.colorize("#FF0000", ..core.colorize("#FF0000",
modMinerTrade.translate("The Transfer Proof was left on the floor because '%s' inventory has no free space."):format(playername) 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 end
modMinerTrade.getProofStack = function(playername, accountname, txtBeneficiary, txtValue, txtReason) 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 if player ~= nil and player:is_player() then
local lpp = 14 -- Lines per book's page local lpp = 14 -- Lines per book's page
local max_text_size = 10000 local max_text_size = 10000
@ -289,9 +292,9 @@ modMinerTrade.getProofStack = function(playername, accountname, txtBeneficiary,
.."\n"..modMinerTrade.translate("Value")..": "..txtValue.." minercash" .."\n"..modMinerTrade.translate("Value")..": "..txtValue.." minercash"
.."\n"..modMinerTrade.translate("Transfer Reason")..": "..txtReason .."\n"..modMinerTrade.translate("Transfer Reason")..": "..txtReason
local Auth = minetest.get_password_hash( local Auth = core.get_password_hash(
modMinerTrade.getSalt_Hash(), modMinerTrade.getSalt_Hash(),
minetest.encode_base64(myDocument:trim()) core.encode_base64(myDocument:trim())
) )
data.text = "" data.text = ""
.."\n"..myDocument:trim() .."\n"..myDocument:trim()
@ -371,50 +374,50 @@ modMinerTrade.showAccountBank = {
--.."background[5.0,-0.25;10,10;default_steel_block.png^text_atm_front.png]" --.."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]" .. "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,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;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("STATEMENT"))).."]" .. "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. if type(accountmode) == "string" and ( --Aacesso público à contas públicas não tem transferência.
accountmode == "atm" accountmode == "atm"
or accountmode == "online" or accountmode == "online"
or ( or (
accountmode == "public_access" and ( accountmode == "public_access" and (
minetest.get_player_privs(playername).mayor core.get_player_privs(playername).mayor
or (minetest.global_exists("modEUrn") and modEUrn.getPresidentName()==playername) or (core.global_exists("modEUrn") and modEUrn.getPresidentName()==playername)
) )
) )
) )
then then
formspec = formspec 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 end
if type(accountmode) == "string" and (accountmode == "atm" or accountmode == "public_access") then if type(accountmode) == "string" and (accountmode == "atm" or accountmode == "public_access") then
formspec = formspec 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 end
if type(accountmode) == "string" and accountmode == "atm" if type(accountmode) == "string" and accountmode == "atm"
then then
formspec = formspec 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 end
if minetest.get_player_privs(playername).developer then if core.get_player_privs(playername).developer then
formspec = formspec 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,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;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("LOANS"))).."]" --Emprestimos .. "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;"..minetest.formspec_escape(core.colorize("#888888", modMinerTrade.translate("LOTTERY"))).."]" --Lotérica .. "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;"..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,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 end
if type(accountmode) == "string" and accountmode ~= "public_access" if type(accountmode) == "string" and accountmode ~= "public_access"
then then
formspec = formspec 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 end
formspec = formspec 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]" --.. "box[6.0,0.25;9.5,9.5;#000000]"
.."background[6.0,0.25;9.5,9.5;text_atm_front.png]" .."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, end,
frmBalance = function(playername) --FORMULÁRIO: SALDO frmBalance = function(playername) --FORMULÁRIO: SALDO
local accountname = modMinerTrade.bank.player[playername].focused_accountname local accountname = modMinerTrade.bank.player[playername].focused_accountname
@ -439,22 +442,22 @@ modMinerTrade.showAccountBank = {
--..default.gui_slots --..default.gui_slots
.. "box[0.00,0.10;5.50,9.5;#000000]" .. "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[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;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]" .."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]" .. "box[6.0,0.25;9.5,9.5;#00000088]"
.."background[6.0,0.25;9.5,9.5;text_atm_front.png]" .."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) modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
minetest.show_formspec( core.show_formspec(
playername, playername,
"frmAtmBalance", "frmAtmBalance",
formspec formspec
@ -471,12 +474,12 @@ modMinerTrade.showAccountBank = {
--.."bgcolor[#636D76FF;false]" --.."bgcolor[#636D76FF;false]"
--.."background[-0.25,-0.25;10,11;safe_inside.png]" --.."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[0,0.0;4,0.5;btnAtmMain;"..core.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_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]" .. "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[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;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]" .."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]" .. "box[6.0,0.25;9.5,9.5;#00000088]"
--.."background[5.0,0.25;9.5,9.5;text_atm_front.png]" --.."background[5.0,0.25;9.5,9.5;text_atm_front.png]"
@ -485,9 +488,9 @@ modMinerTrade.showAccountBank = {
local isAccount = modMinerTrade.isExistAcount(accountname) local isAccount = modMinerTrade.isExistAcount(accountname)
if isAccount then if isAccount then
formspec = formspec formspec = formspec
.. "label[6.25,0.50;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("STATEMENT")..":")).."]" .. "label[6.25,0.50;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("STATEMENT")..":")).."]"
--.. "label[5.25,2.50;"..minetest.formspec_escape(core.colorize("#00FFFF", msgStatement)).."]" --.. "label[5.25,2.50;"..core.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)).."]" --"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 listStatement = modMinerTrade.getStatement(accountname)
local plusStatement = "#888,"..modMinerTrade.translate("")..","..modMinerTrade.translate("WHEN")..","..modMinerTrade.translate("VALUE") 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 = oneStatement.when.." | "..sign..oneStatement.value.." minercash."
local line = "#FFF," local line = "#FFF,"
..(("%03d"):format(i)).."," ..(("%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 if plusStatement == "" then
plusStatement = line plusStatement = line
else else
@ -517,9 +520,9 @@ modMinerTrade.showAccountBank = {
sign = "+" sign = "+"
end end
plusStatement = plusStatement..",#FFFF00,," plusStatement = plusStatement..",#FFFF00,,"
--..minetest.formspec_escape(os.date("%Y-%B-%d %Hh:%Mm:%Ss")) --..core.formspec_escape(os.date("%Y-%B-%d %Hh:%Mm:%Ss"))
..minetest.formspec_escape(modMinerTrade.translate("TOTAL")..": ") ..core.formspec_escape(modMinerTrade.translate("TOTAL")..": ")
..minetest.formspec_escape(sign..("%02d"):format(value).." minercash.") ..core.formspec_escape(sign..("%02d"):format(value).." minercash.")
.."," ..","
end end
--]] --]]
@ -541,13 +544,13 @@ modMinerTrade.showAccountBank = {
end end
formspec = formspec formspec = formspec
.."textarea[6.75,8.50;9.0,1.5;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("TRANSACTION DETAILS")..":"))..";" .."textarea[6.75,8.50;9.0,1.5;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("TRANSACTION DETAILS")..":"))..";"
..minetest.formspec_escape(core.colorize("#00FFFF", msgStatement)) ..core.formspec_escape(core.colorize("#00FFFF", msgStatement))
.."]" .."]"
minetest.show_formspec( core.show_formspec(
playername, playername,
"frmAtmStatement", "frmAtmStatement",
formspec formspec
@ -563,27 +566,27 @@ modMinerTrade.showAccountBank = {
--..default.gui_slots --..default.gui_slots
.. "box[0.00,0.10;5.50,9.5;#000000]" .. "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[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;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]" .."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]" .."background[6.0,0.25;9.5,9.5;text_atm_front.png]"
.. "box[6.0,0.25;9.5,9.5;#000000CC]" .. "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")..":")).."]" .. "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;;"..minetest.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("BALANCES")..":"))..";"..minetest.formspec_escape(core.colorize("#00FFFF", msgBalance)).."]" --.. "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;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BACK"))).."]" --.. "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_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]" --.."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"))).."]" .. "label[9.25,3.25;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("MINERCASH"))).."]"
.."tooltip[btnMinercoin;"..minetest.formspec_escape(modMinerTrade.translate("Withdrawals in minercash."))..";#CCCC0088;#000000]" .."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;]" .."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"))).."]" .. "label[9.25,5.75;"..core.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("BANK CHECK"))).."]"
.."tooltip[btnMinercoin;"..minetest.formspec_escape(modMinerTrade.translate("Withdrawals in bank check."))..";#CCCC0088;#000000]" .."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;]" .."image_button[7.25,5.00;2.00,2.00;obj_bank_check.png;btnGiveCheck;]"
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5) modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
minetest.show_formspec(playername, "frmAtmWithdrawals", formspec) core.show_formspec(playername, "frmAtmWithdrawals", formspec)
end, end,
frmGiveCash = function(playername, txtValue, msgDetails) --FORMULÁRIO: SAQUE EM DINHEIRO frmGiveCash = function(playername, txtValue, msgDetails) --FORMULÁRIO: SAQUE EM DINHEIRO
local accountname = modMinerTrade.bank.player[playername].focused_accountname local accountname = modMinerTrade.bank.player[playername].focused_accountname
@ -603,13 +606,13 @@ modMinerTrade.showAccountBank = {
--..default.gui_slots --..default.gui_slots
.. "box[0.00,0.10;5.50,9.5;#000000]" .. "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[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;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]" .."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]" .."background[6.0,0.25;9.5,9.5;text_atm_front.png]"
.. "box[6.0,0.25;9.5,9.5;#000000CC]" .. "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 modMinerTrade.isExistAcount(accountname) then
if txtValue == nil or txtValue == "" then if txtValue == nil or txtValue == "" then
@ -619,28 +622,28 @@ modMinerTrade.showAccountBank = {
msgDetails = modMinerTrade.translate("Write the value that want to withdrawal!") msgDetails = modMinerTrade.translate("Write the value that want to withdrawal!")
end end
formspec = formspec 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;" .."field[7.00,3.50;3.00,0.50;txtValue;"
..minetest.formspec_escape( ..core.formspec_escape(
core.colorize( core.colorize(
"#00FFFF", "#00FFFF",
modMinerTrade.translate("VALUE")..":" 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")..":"))..";" .."textarea[6.75,8.50;9.0,1.5;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("DETAILS")..":"))..";"
..minetest.formspec_escape(core.colorize("#00FFFF", msgDetails)) ..core.formspec_escape(core.colorize("#00FFFF", msgDetails))
.."]" .."]"
end end
minetest.show_formspec(playername, "frmAtmGiveCash", formspec) core.show_formspec(playername, "frmAtmGiveCash", formspec)
end, end,
frmDeposits = function(playername) --FORMULÁRIO: DEPÓSITOS frmDeposits = function(playername) --FORMULÁRIO: DEPÓSITOS
local accountname = modMinerTrade.bank.player[playername].focused_accountname local accountname = modMinerTrade.bank.player[playername].focused_accountname
-- playername = player:get_player_name() -- 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 -- 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) 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. -- 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) on_move = function(inv, from_list, from_index, to_list, to_index, count, player)
--modMinerTrade.setSafeInventory(playername, inv:get_list("safe")) --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, end,
on_put = function(inv, listname, index, stack, player) on_put = function(inv, listname, index, stack, player)
--modMinerTrade.setSafeInventory(playername, inv:get_list("safe")) --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() --local accountname = player:get_player_name()
if modMinerTrade.checkValidStack(stack) >= 1 then if modMinerTrade.checkValidStack(stack) >= 1 then
local stackValue = modMinerTrade.getValueStack(stack) local stackValue = modMinerTrade.getValueStack(stack)
@ -697,7 +700,7 @@ modMinerTrade.showAccountBank = {
end, end,
on_take = function(inv, listname, index, stack, player) on_take = function(inv, listname, index, stack, player)
--modMinerTrade.setSafeInventory(playername, inv:get_list("safe")) --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, end,
}) })
@ -720,35 +723,35 @@ modMinerTrade.showAccountBank = {
--..default.gui_slots --..default.gui_slots
.. "box[0.00,0.10;5.50,9.5;#000000]" .. "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[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;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]" .."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]" .."background[6.0,0.25;9.5,9.5;text_atm_front.png]"
.. "box[6.0,0.25;9.5,9.5;#000000AA]" .. "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") )).."]" .. "label[6.50,0.50;"..core.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)).."]" --.. "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]" .. "box[6.5,1.50;8.5,1.05;#00FF0044]"
.."textarea[7.25,2.00;9.0,2.0;;" .."textarea[7.25,2.00;9.0,2.0;;"
..minetest.formspec_escape(core.colorize("#FFFF00", modMinerTrade.translate("YOUR BALANCE")..":"))..";" ..core.formspec_escape(core.colorize("#FFFF00", modMinerTrade.translate("YOUR BALANCE")..":"))..";"
..minetest.formspec_escape(core.colorize("#FFFFFF", minetest.formspec_escape(msgBalance))) ..core.formspec_escape(core.colorize("#FFFFFF", core.formspec_escape(msgBalance)))
.."]" .."]"
--listcolors[slot_bg_normal;slot_bg_hover;slot_border;tooltip_bgcolor;tooltip_fontcolor] --listcolors[slot_bg_normal;slot_bg_hover;slot_border;tooltip_bgcolor;tooltip_fontcolor]
.."listcolors[#88888866;#666666;#CCCCCC;#444444;#FFFFFF]" .."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[9.00,3.35;2,2;obj_minercoin.png]"
.."image[10.50,3.75;1,1;gui_arrow.png^[transformR270]" .."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;]" .."list[current_player;main;7.00,5.50;8,4;]"
minetest.show_formspec(playername, "frmAtmDeposits", formspec) core.show_formspec(playername, "frmAtmDeposits", formspec)
end, end,
frmTransfer = function(playername) --FORMULÁRIO: TRANSFERÊNCIAS frmTransfer = function(playername) --FORMULÁRIO: TRANSFERÊNCIAS
local accountname = modMinerTrade.bank.player[playername].focused_accountname local accountname = modMinerTrade.bank.player[playername].focused_accountname
@ -768,13 +771,13 @@ modMinerTrade.showAccountBank = {
--..default.gui_slots --..default.gui_slots
.. "box[0.00,0.10;5.50,9.5;#000000]" .. "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[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;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]" .."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]" .."background[6.0,0.25;9.5,9.5;text_atm_front.png]"
.. "box[6.0,0.25;9.5,9.5;#000000CC]" .. "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 modMinerTrade.isExistAcount(accountname) then
if txtBeneficiary == nil or type(txtBeneficiary) ~= "string" 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!") msgDetails = modMinerTrade.translate("Write the 'beneficiary player name' and the 'value in minercash' that want to transfer!")
end end
formspec = formspec 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;" .."field[7.00,3.50;6.00,0.50;txtBeneficiary;"
..minetest.formspec_escape( ..core.formspec_escape(
core.colorize( core.colorize(
"#00FFFF", "#00FFFF",
modMinerTrade.translate("BENEFICIARY NAME")..":" modMinerTrade.translate("BENEFICIARY NAME")..":"
) )
)..";" )..";"
..minetest.formspec_escape(txtBeneficiary) ..core.formspec_escape(txtBeneficiary)
.."]" .."]"
.."field[7.00,5.00;3.00,0.50;txtValue;" .."field[7.00,5.00;3.00,0.50;txtValue;"
..minetest.formspec_escape( ..core.formspec_escape(
core.colorize( core.colorize(
"#00FFFF", "#00FFFF",
modMinerTrade.translate("VALUE")..":" modMinerTrade.translate("VALUE")..":"
) )
)..";" )..";"
..minetest.formspec_escape(txtValue) ..core.formspec_escape(txtValue)
.."]" .."]"
.."field[7.00,6.50;9.00,0.50;txtReason;" .."field[7.00,6.50;9.00,0.50;txtReason;"
..minetest.formspec_escape( ..core.formspec_escape(
core.colorize( core.colorize(
"#00FFFF", "#00FFFF",
modMinerTrade.translate("REASON OF TRANSFER")..":" 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")..":"))..";" .."textarea[6.75,8.50;9.0,1.5;;"..core.formspec_escape(core.colorize("#00FFFF", modMinerTrade.translate("DETAILS")..":"))..";"
..minetest.formspec_escape(core.colorize("#00FFFF", msgDetails)) ..core.formspec_escape(core.colorize("#00FFFF", msgDetails))
.."]" .."]"
end end
minetest.show_formspec(playername, "frmAtmTransfer", formspec) core.show_formspec(playername, "frmAtmTransfer", formspec)
end, end,
frmLoanFunctions = function(playername) --FORMULÁRIO: FUNÇÕES DE EMPRESTIMO frmLoanFunctions = function(playername) --FORMULÁRIO: FUNÇÕES DE EMPRESTIMO
local accountname = modMinerTrade.bank.player[playername].focused_accountname local accountname = modMinerTrade.bank.player[playername].focused_accountname
@ -836,28 +839,28 @@ modMinerTrade.showAccountBank = {
--..default.gui_slots --..default.gui_slots
.. "box[0.00,0.10;5.50,9.5;#000000]" .. "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[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;;"..minetest.formspec_escape(core.colorize("#FFFFFF", modMinerTrade.translate("EXIT"))).."]" .."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]" .."background[6.0,0.25;9.5,9.5;text_atm_front.png]"
.. "box[6.0,0.25;9.5,9.5;#000000CC]" .. "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"))).."]" .. "label[9.25,3.25;"..core.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]" .."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;]" .."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"))).."]" .. "label[9.25,5.75;"..core.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]" .."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;]" .."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"))).."]" .. "label[9.25,8.25;"..core.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]" .."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;]" .."image_button[7.25,7.50;2.00,2.00;obj_bank_check.png;btnLoansRules;]"
modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5) modMinerTrade.doSoundPlayer(playername, "sfx_atm", 5)
minetest.show_formspec(playername, "frmAtmLoanFunctions", formspec) core.show_formspec(playername, "frmAtmLoanFunctions", formspec)
end, end,
} }
@ -903,8 +906,8 @@ end
modMinerTrade.delDetachedInventory = function(playername) modMinerTrade.delDetachedInventory = function(playername)
--core.detached_inventories["safe_"..ownername] = nil --core.detached_inventories["safe_"..ownername] = nil
return minetest.remove_detached_inventory("deposits_"..playername) return core.remove_detached_inventory("deposits_"..playername)
--return minetest.remove_detached_inventory_raw("safe_"..ownername) --return core.remove_detached_inventory_raw("safe_"..ownername)
end end
@ -917,8 +920,8 @@ modMinerTrade.onReceiveFields = function(player, formname, fields)
elseif fields.quit then 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. --são funções importantíssimas para não perder inventário do jogador e nem calça legging no servidor.
modMinerTrade.doBankSave() modMinerTrade.doBankSave()
local isDeleted = modMinerTrade.delDetachedInventory(playername) --local isDeleted = modMinerTrade.delDetachedInventory(playername)
modMinerTrade.debug("modMinerTrade.onReceiveFields() >>> Database saved and delete detached inventory... Done ["..dump(isDeleted).."]") --modMinerTrade.debug("modMinerTrade.onReceiveFields() >>> Database saved and delete detached inventory... Done ["..dump(isDeleted).."]")
else else
if formname == "frmAtmMain" then if formname == "frmAtmMain" then
if fields.btnBalance ~= nil then if fields.btnBalance ~= nil then
@ -941,10 +944,11 @@ modMinerTrade.onReceiveFields = function(player, formname, fields)
modMinerTrade.showAccountBank.inPublicAccess(playername) modMinerTrade.showAccountBank.inPublicAccess(playername)
end end
elseif formname == "frmAtmStatement" then 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 if fields.fldStatement ~= nil then
local tblStatement = modMinerTrade.getStatement(playername) 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 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.debug("modMinerTrade.onReceiveFields() >>> fldStatement = "..dump(fldStatement))
modMinerTrade.showAccountBank.frmStatement(playername, fldStatement.row) modMinerTrade.showAccountBank.frmStatement(playername, fldStatement.row)
@ -973,7 +977,7 @@ modMinerTrade.onReceiveFields = function(player, formname, fields)
if modMinerTrade.isExistAcount(accountname) then if modMinerTrade.isExistAcount(accountname) then
local myBalance = modMinerTrade.getBalance(accountname) local myBalance = modMinerTrade.getBalance(accountname)
if tonumber(myValue) <= myBalance then 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 if player ~= nil and player:is_player() then
local delivered = 0 local delivered = 0
local items = modMinerTrade.convValueToItemList(tonumber(myValue)) local items = modMinerTrade.convValueToItemList(tonumber(myValue))
@ -1030,7 +1034,7 @@ modMinerTrade.onReceiveFields = function(player, formname, fields)
elseif formname == "frmAtmTransfer" then elseif formname == "frmAtmTransfer" then
if fields.btnAtmTransfer ~= nil then if fields.btnAtmTransfer ~= nil then
--modMinerTrade.debug("modMinerTrade.onReceiveFields() >>> player = "..playername.." | formname = "..formname.." | fields = "..dump(fields)) --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 if player ~= nil and player:is_player() then
local accountname = modMinerTrade.bank.player[playername].focused_accountname 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", description = core.colorize("#00FF00",
modMinerTrade.translate("PUBLIC ATM") modMinerTrade.translate("PUBLIC ATM")
).."\n\t* "..modMinerTrade.translate("Deposit and Withdraw your minercash into your bank account."), ).."\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", --inventory_image = "text_atm_front_1.png",
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
@ -1180,27 +1184,27 @@ minetest.register_node("minertrade:atm", {
local posAbove = pointed_thing.above --acima local posAbove = pointed_thing.above --acima
local posUnder = pointed_thing.under --abaixo local posUnder = pointed_thing.under --abaixo
if not placer or not placer:is_player() or 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 then --Verifica se pode construir sobre os objetos construiveis
return itemstack return itemstack
end end
local nodeUnder = minetest.get_node(posUnder) local nodeUnder = core.get_node(posUnder)
if minetest.registered_nodes[nodeUnder.name].on_rightclick then --Verifica se o itema na mao do jogador tem funcao rightclick if core.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) return core.registered_nodes[nodeUnder.name].on_rightclick(posUnder, nodeUnder, placer, itemstack)
end end
if if
modMinerTrade.canInteract(playername) modMinerTrade.canInteract(playername)
or modMinerTrade.getNodesInRange(posAbove, 5, "minertrade:dispensingmachine") >= 1 or modMinerTrade.getNodesInRange(posAbove, 5, "minertrade:dispensingmachine") >= 1
then then
local facedir = minetest.dir_to_facedir(placer:get_look_dir()) local facedir = core.dir_to_facedir(placer:get_look_dir())
--minetest.chat_send_player(playername, "[ATM] aaaaaa") --core.chat_send_player(playername, "[ATM] aaaaaa")
minetest.set_node(posAbove, { core.set_node(posAbove, {
name = "minertrade:atm", name = "minertrade:atm",
param2 = facedir, param2 = facedir,
}) })
local meta = minetest.get_meta(posAbove) local meta = core.get_meta(posAbove)
meta:set_string("infotext", meta:set_string("infotext",
--[[ --[[
modMinerTrade.translate( modMinerTrade.translate(
@ -1219,7 +1223,7 @@ minetest.register_node("minertrade:atm", {
end end
itemstack:take_item() -- itemstack:take_item() = Ok itemstack:take_item() -- itemstack:take_item() = Ok
else else
minetest.chat_send_player(playername, core.chat_send_player(playername,
core.colorize("#00ff00", "["..modMinerTrade.translate("ATM").."]: ") core.colorize("#00ff00", "["..modMinerTrade.translate("ATM").."]: ")
..modMinerTrade.translate("You can not install this 'ATM' too far from a 'Dispensing Machine'!") ..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) on_rightclick = function(pos, node, clicker)
local clickername = clicker:get_player_name() 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.")) --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 opentime = tonumber(meta:get_string("opentime")) or 0
local now = os.time() --Em milisegundos local now = os.time() --Em milisegundos
@ -1248,9 +1252,9 @@ minetest.register_node("minertrade:atm", {
--modMinerTrade.showAccountBank.frmMain(clickername) --modMinerTrade.showAccountBank.frmMain(clickername)
modMinerTrade.showAccountBank.inAtm(clickername, clickername) modMinerTrade.showAccountBank.inAtm(clickername, clickername)
else 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) modMinerTrade.doSoundPlayer(clickername, "sfx_failure", 5)
minetest.chat_send_player(clickername, core.chat_send_player(clickername,
core.colorize("#00ff00", "["..modMinerTrade.translate("ATM").."]: ") core.colorize("#00ff00", "["..modMinerTrade.translate("ATM").."]: ")
..modMinerTrade.translate( ..modMinerTrade.translate(
"The ATM will only run %02d seconds after it is installed!" "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', output = 'minertrade:atm',
recipe = { recipe = {
{"default:steel_ingot" ,"default:steel_ingot" ,"default:steel_ingot"}, {"default:steel_ingot" ,"default:steel_ingot" ,"default:steel_ingot"},
@ -1271,24 +1275,24 @@ minetest.register_craft({
} }
}) })
--]] --]]
minetest.register_alias("atm","minertrade:atm") core.register_alias("atm","minertrade:atm")
minetest.register_alias(modMinerTrade.translate("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) return modMinerTrade.onReceiveFields(sender, formname, fields)
end) end)
minetest.register_on_joinplayer(function(player) core.register_on_joinplayer(function(player)
local playername = player:get_player_name() local playername = player:get_player_name()
if not modMinerTrade.isExistAcount(playername) then if not modMinerTrade.isExistAcount(playername) then
modMinerTrade.createAcount(playername) modMinerTrade.createAcount(playername)
end end
end) end)
minetest.register_on_leaveplayer(function(player) core.register_on_leaveplayer(function(player)
modMinerTrade.doBankSave() modMinerTrade.doBankSave()
end) end)
minetest.register_on_shutdown(function() core.register_on_shutdown(function()
modMinerTrade.doBankSave() modMinerTrade.doBankSave()
end) end)