diff --git a/api.lua b/api.lua index fad7029..7888b53 100644 --- a/api.lua +++ b/api.lua @@ -146,3 +146,13 @@ modMinerTrade.getDetachedInventory = function(playername) return newInv end + +modMinerTrade.showInventory = function(playername, ownername, title) + local inv = modMinerTrade.getDetachedInventory(ownername) + minetest.sound_play("sfx_alert", {player=playername, max_hear_distance=5.0,}) + minetest.show_formspec( + playername, + "safe_"..ownername, + modMinerTrade.getFormspec(ownername, title) + ) +end diff --git a/item_atm.lua b/item_atm.lua index fd8332e..1babe05 100644 --- a/item_atm.lua +++ b/item_atm.lua @@ -86,16 +86,13 @@ minetest.register_node("minertrade:atm", { local opentime = tonumber(meta:get_string("opentime")) or 0 local now = os.time() --Em milisegundos if now >= opentime or minetest.get_player_privs(playername).server then - local inv = modMinerTrade.getDetachedInventory(playername) - minetest.show_formspec( - playername, - "safe_"..playername, - modMinerTrade.getFormspec( - playername, + modMinerTrade.showInventory( + playername, + playername, modMinerTrade.translate("PUBLIC ATM - Account of '%s':"):format(playername) ) - ) else + minetest.sound_play("sfx_failure", {player=playername, max_hear_distance=5.0,}) minetest.chat_send_player(playername, core.colorize("#00ff00", "["..modMinerTrade.translate("ATM").."]: ") ..modMinerTrade.translate("The ATM will only run %02d seconds after it is installed!"):format(opentime-now) diff --git a/item_miner_cash.lua b/item_miner_cash.lua index 1a3d9ec..2b4a295 100644 --- a/item_miner_cash.lua +++ b/item_miner_cash.lua @@ -99,46 +99,42 @@ minetest.register_craftitem("minertrade:creditcard", { inventory_image = "obj_credit_card.png", --stack_max=9, --Acumula 9 por slot groups = {cash=1, trade=1}, -on_use = function(itemstack, player) + on_use = function(itemstack, player) local playername = player:get_player_name() -local meta = itemstack:get_meta() + local meta = itemstack:get_meta() local old_data = minetest.deserialize(itemstack:get_metadata()) if old_data then meta:from_table({ fields = old_data }) end local tmpDatabase = meta:to_table().fields - if type(tmpDatabase.ownername)~="string" or tmpDatabase.ownername=="" then - tmpDatabase.ownername = playername - tmpDatabase.description = modMinerTrade.translate("CREDIT CARD of '%s'"):format(tmpDatabase.ownername) - local invPlayer = player:get_inventory() - local new_stack - local count = itemstack:get_count() - itemstack:set_count(count - 1) - new_stack = ItemStack("minertrade:creditcard") - new_stack:get_meta():from_table({ fields = tmpDatabase }) - if invPlayer:room_for_item("main", new_stack) then - invPlayer:add_item("main", new_stack) - else - minetest.add_item(player:get_pos(), new_stack) - end - minetest.chat_send_player(playername, - core.colorize("#00ff00", "["..modMinerTrade.translate("CREDIT CARD").."]: ") - ..modMinerTrade.translate("Your name has been saved to this credit card. Anyone using this credit card will be able to access the '%s' bank account."):format(tmpDatabase.ownername) - ) - minetest.sound_play("sfx_alert", {object=player, max_hear_distance=5.0,}) - return itemstack - end - - local inv = modMinerTrade.getDetachedInventory(tmpDatabase.ownername) - minetest.show_formspec( - playername, - "safe_"..tmpDatabase.ownername, - modMinerTrade.getFormspec( - tmpDatabase.ownername, - modMinerTrade.translate("ACCOUNT BANK of '%s':"):format(tmpDatabase.ownername) - ) + + if type(tmpDatabase.ownername)~="string" or tmpDatabase.ownername=="" then + tmpDatabase.ownername = playername + tmpDatabase.description = modMinerTrade.translate("CREDIT CARD of '%s'"):format(tmpDatabase.ownername) + local invPlayer = player:get_inventory() + local new_stack + local count = itemstack:get_count() + itemstack:set_count(count - 1) + new_stack = ItemStack("minertrade:creditcard") + new_stack:get_meta():from_table({ fields = tmpDatabase }) + if invPlayer:room_for_item("main", new_stack) then + invPlayer:add_item("main", new_stack) + else + minetest.add_item(player:get_pos(), new_stack) + end + minetest.chat_send_player(playername, + core.colorize("#00ff00", "["..modMinerTrade.translate("CREDIT CARD").."]: ") + ..modMinerTrade.translate("Your name has been saved to this credit card. Anyone using this credit card will be able to access the '%s' bank account."):format(tmpDatabase.ownername) ) - --return itemstack + minetest.sound_play("sfx_alert", {object=player, max_hear_distance=5.0,}) + return itemstack + end + modMinerTrade.showInventory( + playername, + tmpDatabase.ownername, + modMinerTrade.translate("ACCOUNT BANK of '%s':"):format(tmpDatabase.ownername) + ) + return itemstack end, }) diff --git a/item_strongbox.lua b/item_strongbox.lua index 63cc710..775a244 100644 --- a/item_strongbox.lua +++ b/item_strongbox.lua @@ -42,22 +42,20 @@ minetest.register_node("minertrade:strongbox", { local opentime = tonumber(meta:get_string("opentime")) or 0 local now = os.time() --Em milisegundos if now >= opentime or minetest.get_player_privs(playername).server then - local inv = modMinerTrade.getDetachedInventory(ownername) - minetest.show_formspec( - playername, - "safe_"..ownername, - modMinerTrade.getFormspec( - ownername, - modMinerTrade.translate("STRONGBOX owned by '%s':"):format(ownername) - ) + modMinerTrade.showInventory( + playername, + ownername, + modMinerTrade.translate("STRONGBOX owned by '%s':"):format(ownername) ) else + minetest.sound_play("sfx_failure", {player=playername, max_hear_distance=5.0,}) minetest.chat_send_player(playername, core.colorize("#00ff00", "["..modMinerTrade.translate("STRONGBOX").."]: ") ..modMinerTrade.translate("The safe is going to work %02d seconds after it is installed!"):format(opentime-now) ) end else + minetest.sound_play("sfx_failure", {player=playername, max_hear_distance=5.0,}) minetest.chat_send_player(playername, core.colorize("#00ff00", "["..modMinerTrade.translate("STRONGBOX").."]: ") ..modMinerTrade.translate("You do not have access to the safe belonging to '%s'!"):format(ownername)