Fix messages loading

This commit is contained in:
Athozus 2023-03-01 13:50:09 +01:00
parent 1441c28ccf
commit 3dd820a16b
No known key found for this signature in database
GPG key ID: B50895022E8484BF
2 changed files with 29 additions and 25 deletions

41
gui.lua
View file

@ -145,33 +145,28 @@ end
function mail.show_sent(name) function mail.show_sent(name)
local formspec = { mail.sent_formspec } local formspec = { mail.sent_formspec }
local playerContacts = mail.getContacts(name) local messages = mail.getMessages()
local nbMails = 0 local nbMails = 0
for k, contact, i, l in mail.pairsByKeys(playerContacts) do
local contactMessages = mail.getPlayerMessages(contact.name)
message_drafts[name] = nil if messages[1] then
for _, message in ipairs(messages) do
if contactMessages[1] then mail.ensure_new_format(message, name)
for _, message in ipairs(contactMessages) do if message.sender == name then
mail.ensure_new_format(message, name) nbMails = nbMails + 1
if message.sender == name then formspec[#formspec + 1] = ","
nbMails = nbMails + 1 formspec[#formspec + 1] = ","
formspec[#formspec + 1] = "," formspec[#formspec + 1] = minetest.formspec_escape(message.to)
formspec[#formspec + 1] = "," formspec[#formspec + 1] = ","
formspec[#formspec + 1] = minetest.formspec_escape(message.to) if message.subject ~= "" then
formspec[#formspec + 1] = "," if string.len(message.subject) > 30 then
if message.subject ~= "" then formspec[#formspec + 1] =
if string.len(message.subject) > 30 then minetest.formspec_escape(string.sub(message.subject, 1, 27))
formspec[#formspec + 1] = 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
else else
formspec[#formspec + 1] = "(No subject)" formspec[#formspec + 1] = minetest.formspec_escape(message.subject)
end end
else
formspec[#formspec + 1] = "(No subject)"
end end
end end
if selected_idxs.messages[name] then if selected_idxs.messages[name] then

View file

@ -30,10 +30,19 @@ function mail.getPlayerMessages(playername)
local playerMessages = {} local playerMessages = {}
if messages then if messages then
for _, msg in ipairs(messages) do 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 for _, receiver in ipairs(receivers) do
if receiver == playername then -- check if player is a receiver 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) table.insert(playerMessages, msg)
end end
end end