mirror of
https://github.com/mt-mods/mail.git
synced 2025-04-30 16:31:43 -04:00
Show every message received/sent via specific functions
This commit is contained in:
parent
3dd820a16b
commit
b5285fbff1
2 changed files with 39 additions and 28 deletions
18
gui.lua
18
gui.lua
|
@ -122,8 +122,7 @@ function mail.show_inbox(name)
|
||||||
formspec[#formspec + 1] = ","
|
formspec[#formspec + 1] = ","
|
||||||
if message.subject ~= "" then
|
if message.subject ~= "" then
|
||||||
if string.len(message.subject) > 30 then
|
if string.len(message.subject) > 30 then
|
||||||
formspec[#formspec + 1] =
|
formspec[#formspec + 1] = minetest.formspec_escape(string.sub(message.subject, 1, 27))
|
||||||
minetest.formspec_escape(string.sub(message.subject, 1, 27))
|
|
||||||
formspec[#formspec + 1] = "..."
|
formspec[#formspec + 1] = "..."
|
||||||
else
|
else
|
||||||
formspec[#formspec + 1] = minetest.formspec_escape(message.subject)
|
formspec[#formspec + 1] = minetest.formspec_escape(message.subject)
|
||||||
|
@ -145,22 +144,19 @@ end
|
||||||
|
|
||||||
function mail.show_sent(name)
|
function mail.show_sent(name)
|
||||||
local formspec = { mail.sent_formspec }
|
local formspec = { mail.sent_formspec }
|
||||||
local messages = mail.getMessages()
|
local messages = mail.getPlayerSentMessages(name)
|
||||||
local nbMails = 0
|
|
||||||
|
message_drafts[name] = nil
|
||||||
|
|
||||||
if messages[1] then
|
if messages[1] then
|
||||||
for _, message in ipairs(messages) do
|
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] = ","
|
formspec[#formspec + 1] = ","
|
||||||
formspec[#formspec + 1] = minetest.formspec_escape(message.to)
|
formspec[#formspec + 1] = minetest.formspec_escape(message.to)
|
||||||
formspec[#formspec + 1] = ","
|
formspec[#formspec + 1] = ","
|
||||||
if message.subject ~= "" then
|
if message.subject ~= "" then
|
||||||
if string.len(message.subject) > 30 then
|
if string.len(message.subject) > 30 then
|
||||||
formspec[#formspec + 1] =
|
formspec[#formspec + 1] = minetest.formspec_escape(string.sub(message.subject, 1, 27))
|
||||||
minetest.formspec_escape(string.sub(message.subject, 1, 27))
|
|
||||||
formspec[#formspec + 1] = "..."
|
formspec[#formspec + 1] = "..."
|
||||||
else
|
else
|
||||||
formspec[#formspec + 1] = minetest.formspec_escape(message.subject)
|
formspec[#formspec + 1] = minetest.formspec_escape(message.subject)
|
||||||
|
@ -174,9 +170,7 @@ function mail.show_sent(name)
|
||||||
formspec[#formspec + 1] = tostring(selected_idxs.messages[name] + 1)
|
formspec[#formspec + 1] = tostring(selected_idxs.messages[name] + 1)
|
||||||
end
|
end
|
||||||
formspec[#formspec + 1] = "]"
|
formspec[#formspec + 1] = "]"
|
||||||
end
|
else
|
||||||
end
|
|
||||||
if nbMails == 0 then
|
|
||||||
formspec[#formspec + 1] = "]label[2.25,4.5;No mail]"
|
formspec[#formspec + 1] = "]label[2.25,4.5;No mail]"
|
||||||
end
|
end
|
||||||
minetest.show_formspec(name, "mail:sent", table.concat(formspec, ""))
|
minetest.show_formspec(name, "mail:sent", table.concat(formspec, ""))
|
||||||
|
|
19
storage.lua
19
storage.lua
|
@ -39,8 +39,9 @@ function mail.getPlayerMessages(playername)
|
||||||
bcc = msg.bcc
|
bcc = msg.bcc
|
||||||
end
|
end
|
||||||
|
|
||||||
local receivers = mail.split((msg.to .. ", " .. cc .. ", " .. bcc),",")
|
local receivers = mail.split((msg.to .. "," .. cc .. "," .. bcc),",") -- split players into table
|
||||||
for _, receiver in ipairs(receivers) do
|
for _, receiver in ipairs(receivers) do
|
||||||
|
receiver = string.gsub(receiver, " ", "") -- avoid blank spaces (ex : " singleplayer" instead of "singleplayer")
|
||||||
if receiver == playername then -- check if player is a receiver
|
if receiver == playername then -- check if player is a receiver
|
||||||
if mail.getMessageStatus(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)
|
||||||
|
@ -55,6 +56,22 @@ function mail.getPlayerMessages(playername)
|
||||||
return playerMessages
|
return playerMessages
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function mail.getPlayerSentMessages(playername)
|
||||||
|
local messages = mail.getMessages()
|
||||||
|
local playerSentMessages = {}
|
||||||
|
if messages[1] then
|
||||||
|
for _, msg in ipairs(messages) do
|
||||||
|
if msg.sender == playername then -- check if player is the sender
|
||||||
|
if mail.getMessageStatus(playername, msg.id) ~= "deleted" then -- do not return if the message was deleted from player
|
||||||
|
table.insert(playerSentMessages, msg)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return playerSentMessages
|
||||||
|
end
|
||||||
|
|
||||||
function mail.setMessages(playername, messages)
|
function mail.setMessages(playername, messages)
|
||||||
if mail.write_json_file(mail.getMailFile(playername), messages) then
|
if mail.write_json_file(mail.getMailFile(playername), messages) then
|
||||||
mail.hud_update(playername, messages)
|
mail.hud_update(playername, messages)
|
||||||
|
|
Loading…
Add table
Reference in a new issue