Receive player messages from global storage

This commit is contained in:
Athozus 2023-03-01 11:50:58 +01:00
parent 0d69f0242b
commit 128b209067
No known key found for this signature in database
GPG key ID: B50895022E8484BF
2 changed files with 24 additions and 10 deletions

16
api.lua
View file

@ -85,7 +85,6 @@ function mail.send(...)
-- form the actual mail
local msg = {
unread = true,
sender = m.from,
to = m.to,
cc = m.cc,
@ -112,3 +111,18 @@ function mail.send(...)
end
end
end
function mail.split(str, delimiter) -- flux split function
local rv = {}
local i, j = str:find(delimiter, nil, true)
while i do
table.insert(rv, str:sub(1, i - 1))
str = str:sub(j + 1)
i, j = str:find(delimiter, nil, true)
end
table.insert(rv, str)
return rv
end

View file

@ -26,22 +26,22 @@ function mail.getMessages()
end
function mail.getPlayerMessages(playername)
local messages = mail.read_json_file(mail.getMailFile(playername))
local messages = mail.getMessages()
local playerMessages = {}
if messages then
for _, msg in ipairs(messages) do
if not msg.time then
-- add missing time field if not available (happens with old data)
msg.time = 0
local receivers = mail.split((msg.to .. ", " .. (msg.cc or "") .. ", " .. (msg.bcc or "")),",")
for _, receiver in ipairs(receivers) do
if receiver == playername then
table.insert(playerMessages, msg)
end
end
end
-- sort by received date descending
table.sort(messages, function(a,b) return a.time > b.time end)
-- show hud notification
mail.hud_update(playername, messages)
mail.hud_update(playername, playerMessages)
end
return messages
return playerMessages
end
function mail.setMessages(playername, messages)