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

11
gui.lua
View file

@ -145,15 +145,11 @@ 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
for _, message in ipairs(contactMessages) do
mail.ensure_new_format(message, name) mail.ensure_new_format(message, name)
if message.sender == name then if message.sender == name then
nbMails = nbMails + 1 nbMails = nbMails + 1
@ -173,7 +169,6 @@ function mail.show_sent(name)
formspec[#formspec + 1] = "(No subject)" formspec[#formspec + 1] = "(No subject)"
end end
end end
end
if selected_idxs.messages[name] then if selected_idxs.messages[name] then
formspec[#formspec + 1] = ";" formspec[#formspec + 1] = ";"
formspec[#formspec + 1] = tostring(selected_idxs.messages[name] + 1) formspec[#formspec + 1] = tostring(selected_idxs.messages[name] + 1)

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