From 3dd820a16bffc6c401df0464a72c628c686dff91 Mon Sep 17 00:00:00 2001 From: Athozus Date: Wed, 1 Mar 2023 13:50:09 +0100 Subject: [PATCH] Fix messages loading --- gui.lua | 41 ++++++++++++++++++----------------------- storage.lua | 13 +++++++++++-- 2 files changed, 29 insertions(+), 25 deletions(-) diff --git a/gui.lua b/gui.lua index e0b2226..f04f629 100644 --- a/gui.lua +++ b/gui.lua @@ -145,33 +145,28 @@ end function mail.show_sent(name) local formspec = { mail.sent_formspec } - local playerContacts = mail.getContacts(name) + local messages = mail.getMessages() local nbMails = 0 - for k, contact, i, l in mail.pairsByKeys(playerContacts) do - local contactMessages = mail.getPlayerMessages(contact.name) - message_drafts[name] = nil - - if contactMessages[1] then - for _, message in ipairs(contactMessages) do - mail.ensure_new_format(message, name) - if message.sender == name then - nbMails = nbMails + 1 - formspec[#formspec + 1] = "," - formspec[#formspec + 1] = "," - formspec[#formspec + 1] = minetest.formspec_escape(message.to) - formspec[#formspec + 1] = "," - if message.subject ~= "" then - if string.len(message.subject) > 30 then - formspec[#formspec + 1] = - minetest.formspec_escape(string.sub(message.subject, 1, 27)) - formspec[#formspec + 1] = "..." - else - formspec[#formspec + 1] = minetest.formspec_escape(message.subject) - end + if messages[1] then + for _, message in ipairs(messages) do + mail.ensure_new_format(message, name) + if message.sender == name then + nbMails = nbMails + 1 + formspec[#formspec + 1] = "," + formspec[#formspec + 1] = "," + formspec[#formspec + 1] = minetest.formspec_escape(message.to) + formspec[#formspec + 1] = "," + if message.subject ~= "" then + if string.len(message.subject) > 30 then + formspec[#formspec + 1] = + minetest.formspec_escape(string.sub(message.subject, 1, 27)) + formspec[#formspec + 1] = "..." else - formspec[#formspec + 1] = "(No subject)" + formspec[#formspec + 1] = minetest.formspec_escape(message.subject) end + else + formspec[#formspec + 1] = "(No subject)" end end if selected_idxs.messages[name] then diff --git a/storage.lua b/storage.lua index 2b1cd92..dc419cb 100644 --- a/storage.lua +++ b/storage.lua @@ -30,10 +30,19 @@ function mail.getPlayerMessages(playername) local playerMessages = {} if messages then for _, msg in ipairs(messages) do - local receivers = mail.split((msg.to .. ", " .. (msg.cc or "") .. ", " .. (msg.bcc or "")),",") + local cc = "" + local bcc = "" + if msg.cc then + cc = msg.cc + end + if msg.bcc then + bcc = msg.bcc + end + + local receivers = mail.split((msg.to .. ", " .. cc .. ", " .. bcc),",") for _, receiver in ipairs(receivers) do if receiver == playername then -- check if player is a receiver - if mail.getStatus(receiver, msg.id) ~= "deleted" then -- do not return if the message was deleted from player + if mail.getMessageStatus(receiver, msg.id) ~= "deleted" then -- do not return if the message was deleted from player table.insert(playerMessages, msg) end end