minetest.register_craftitem("minertrade:paperprinted", { description = modMinerTrade.translate("Paper Printed"), inventory_image = "bgf_scroll.png", groups = {paper = 1, printed = 1, not_in_creative_inventory = 1, flammable = 1}, stack_max = 1, on_use = function(itemstack, user) local playername = user:get_player_name() local meta = itemstack:get_meta() local data = meta:to_table().fields local text = minetest.decode_base64(data.text) modMinerTrade.showPaperPrinted(playername, text) end, }) modMinerTrade.paperprinted = { max_title_size = 80, } modMinerTrade.addPaperPrinted = function(player, txtTitle, txtPrinted) local playername = player:get_player_name() local data = {} --data.title = fields.title:sub(1, max_title_size) data.title = txtTitle:sub(1, modMinerTrade.paperprinted.max_title_size) data.description = core.colorize("#00FF00", modMinerTrade.translate("PRINTED PAPER") ) .."\n".." * "..data.title data.when = os.date() --os.date("%Y-%B-%d %Hh:%Mm:%Ss") data.text = minetest.encode_base64(txtPrinted:trim()) local objPaperPrinted = ItemStack("minertrade:paperprinted") objPaperPrinted:get_meta():from_table({ fields = data }) local invPlayer = player:get_inventory() if invPlayer:room_for_item("main", objPaperPrinted) then-- verifica se compartimento de Recebimento de pagamento do vendedor tem espaço invPlayer:add_item("main", objPaperPrinted) minetest.chat_send_player(playername, core.colorize("#00FF00", "["..modMinerTrade.translate("PRINTER").."]: ") ..modMinerTrade.translate("Paper printing completed!") ) else minetest.add_item(player:get_pos(), objPaperPrinted) minetest.chat_send_player(playername, core.colorize("#00FF00", "["..modMinerTrade.translate("PRINTER").."]: ") ..core.colorize("#FF0000", modMinerTrade.translate("The printed paper was left on the floor because the '%s' inventory has no free space."):format(playername) ) ) end end modMinerTrade.showPaperPrinted = function(playername, text) --Fonte: -- * https://minetest.gitlab.io/minetest/formspec/ -- * https://minetest.gitlab.io/minetest/formspec/#hypertextxywhnametext -- * https://github.com/minetest/minetest/blob/master/doc/lua_api.md local myFormSpec = "" myFormSpec = myFormSpec --.."formspec_version[5.6.0]" .."formspec_version[6]" .."size[16,8,true]" .."no_prepend[]" .."bgcolor[#08080844;true]" --Padrão: #080808BB .."background[0,0;16,8;bgf_scroll.png]" --.."vertlabel[15.75,0.5;"..minetest.formspec_escape(modMinerTrade.translate("PRINTED PAPER")).."]" .."hypertext[1.75,1.5;12.75,4.75;myPage;" --..minetest.formspec_escape("") .."" .."" --.."" ..minetest.formspec_escape(text) .."]" -- Fim de hypertext[] minetest.show_formspec(playername, "paperprinted", myFormSpec) end minetest.register_chatcommand("printsample", { params = "", description = "Imprime um papel no Inventário no jogador!.", privs = {server = true}, func = function(playername, param) local txtPrintedSample = [[
Bem vindo, %s! Esse é um Exemplo de Link (não funcional) escrito em formato hyperlink.
---------------------------------= FIM DA IMPRESSÃO =------------------------------------- =D Pressione ESC para sair desta tela!
]] local player = minetest.get_player_by_name(playername) modMinerTrade.addPaperPrinted(player, "Exemplo de Impressão em Papel.", txtPrintedSample:format(playername)) end, })