mirror of
https://github.com/mt-mods/mail.git
synced 2025-09-01 08:25:57 -04:00
status refactoring
This commit is contained in:
parent
706b870b7d
commit
b414ace620
9 changed files with 91 additions and 176 deletions
14
ui/inbox.lua
14
ui/inbox.lua
|
@ -28,7 +28,7 @@ function mail.show_inbox(name)
|
|||
|
||||
if messages[1] then
|
||||
for _, message in ipairs(messages) do
|
||||
if mail.getMessageStatus(name, message.id) == "unread" then
|
||||
if not message.read then
|
||||
if not mail.player_in_list(name, message.to) then
|
||||
formspec[#formspec + 1] = ",#FFD788"
|
||||
else
|
||||
|
@ -114,9 +114,9 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||
|
||||
elseif fields.delete then
|
||||
if formname == "mail:inbox" and messagesInbox[mail.selected_idxs.inbox[name]] then -- inbox table
|
||||
mail.setStatus(name, messagesInbox[mail.selected_idxs.inbox[name]].id, "deleted")
|
||||
mail.delete_mail(name, messagesInbox[mail.selected_idxs.inbox[name]].id)
|
||||
elseif formname == "mail:sent" and messagesSent[mail.selected_idxs.sent[name]] then -- sent table
|
||||
mail.setStatus(name, messagesSent[mail.selected_idxs.sent[name]].id, "deleted")
|
||||
mail.delete_mail(name, messagesSent[mail.selected_idxs.sent[name]].id)
|
||||
end
|
||||
|
||||
mail.show_mail_menu(name)
|
||||
|
@ -150,18 +150,18 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||
|
||||
elseif fields.markread then
|
||||
if formname == "mail:inbox" and messagesInbox[mail.selected_idxs.inbox[name]] then
|
||||
mail.setStatus(name, messagesInbox[mail.selected_idxs.inbox[name]].id, "read")
|
||||
mail.mark_read(name, messagesInbox[mail.selected_idxs.inbox[name]].id)
|
||||
elseif formname == "mail:sent" and messagesSent[mail.selected_idxs.sent[name]] then
|
||||
mail.setStatus(name, messagesSent[mail.selected_idxs.sent[name]].id, "read")
|
||||
mail.mark_read(name, messagesSent[mail.selected_idxs.sent[name]].id)
|
||||
end
|
||||
|
||||
mail.show_mail_menu(name)
|
||||
|
||||
elseif fields.markunread then
|
||||
if formname == "mail:inbox" and messagesInbox[mail.selected_idxs.inbox[name]] then
|
||||
mail.setStatus(name, messagesInbox[mail.selected_idxs.inbox[name]].id, "unread")
|
||||
mail.mark_unread(name, messagesInbox[mail.selected_idxs.inbox[name]].id)
|
||||
elseif formname == "mail:sent" and messagesSent[mail.selected_idxs.sent[name]] then
|
||||
mail.setStatus(name, messagesSent[mail.selected_idxs.sent[name]].id, "unread")
|
||||
mail.mark_unread(name, messagesSent[mail.selected_idxs.sent[name]].id)
|
||||
end
|
||||
|
||||
mail.show_mail_menu(name)
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
local FORMNAME = "mail:message"
|
||||
|
||||
function mail.show_message(name, msgnumber)
|
||||
local message = mail.getMessage(msgnumber)
|
||||
function mail.show_message(name, id)
|
||||
local message = mail.get_message(name, id)
|
||||
|
||||
local formspec = [[
|
||||
size[8,9]
|
||||
|
||||
|
@ -32,10 +33,9 @@ function mail.show_message(name, msgnumber)
|
|||
local body = minetest.formspec_escape(message.body) or ""
|
||||
formspec = string.format(formspec, from, to, cc, date, subject, body)
|
||||
|
||||
local message_status = mail.getMessageStatus(name, message.id)
|
||||
|
||||
if message_status == "unread" then
|
||||
mail.setStatus(name, message.id, "read")
|
||||
if not message.read then
|
||||
-- mark as read
|
||||
mail.mark_read(name, id)
|
||||
end
|
||||
|
||||
minetest.show_formspec(name, FORMNAME, formspec)
|
||||
|
@ -125,9 +125,9 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
|||
|
||||
elseif fields.delete then
|
||||
if messagesInbox[mail.selected_idxs.inbox[name]] then
|
||||
mail.setStatus(name, messagesInbox[mail.selected_idxs.inbox[name]].id, "deleted")
|
||||
mail.delete_mail(name, messagesInbox[mail.selected_idxs.inbox[name]].id)
|
||||
elseif messagesSent[mail.selected_idxs.sent[name]] then
|
||||
mail.setStatus(name, messagesSent[mail.selected_idxs.sent[name]].id, "deleted")
|
||||
mail.delete_mail(name, messagesSent[mail.selected_idxs.sent[name]].id)
|
||||
end
|
||||
mail.show_mail_menu(name)
|
||||
end
|
||||
|
|
|
@ -19,7 +19,8 @@ local sent_formspec = "size[8,10;]" .. mail.theme .. [[
|
|||
|
||||
function mail.show_sent(name)
|
||||
local formspec = { sent_formspec }
|
||||
local messages = mail.getPlayerSentMessages(name)
|
||||
local entry = mail.get_storage_entry(name)
|
||||
local messages = entry.outbox
|
||||
|
||||
mail.message_drafts[name] = nil
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue