Skip to content

Commit 79d5ad8

Browse files
authored
1.1.x (#68)
* Fix close button which makes the formspec blinking (#65) * Fix header click + use them as sorting (#66) * Abort checking messages when clicking on a header row (indexing a nil value) * Use headers clicks to change sorting * Fix oversized selected number #67 (#67) * about.lua to 1.1.1
1 parent 54a566f commit 79d5ad8

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed

ui/about.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ function mail.show_about(name)
66
button[9.35,0;0.75,0.5;back;X]
77
label[0,0;Mail]
88
label[0,0.4;Provided my mt-mods]
9-
label[0,0.8;Version: 1.1.0]
9+
label[0,0.8;Version: 1.1.1]
1010
label[0,1.4;Licenses:]
1111
label[0.2,1.8;Expat (code), WTFPL (textures)]
1212
label[0,2.4;https://github.com/mt-mods/mail]

ui/events.lua

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ end
1313
minetest.register_on_player_receive_fields(function(player, formname, fields)
1414
if formname ~= "mail:inbox" and formname ~= "mail:sent" and formname ~= "mail:drafts" then
1515
return
16+
elseif fields.quit then
17+
return
1618
end
1719

1820
-- Get player name and handle / convert common input fields
@@ -50,6 +52,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
5052
-- Hanmdle formspec event
5153
if fields.inbox then -- inbox table
5254
local evt = minetest.explode_table_event(fields.inbox)
55+
if evt.row == 1 then -- header
56+
if mail.selected_idxs.sortfield[name] == evt.column-1 then -- if already this field, then change direction
57+
mail.selected_idxs.sortdirection[name] = mail.selected_idxs.sortdirection[name] == "2" and "1" or "2"
58+
end
59+
mail.selected_idxs.sortfield[name] = evt.column-1 -- update column
60+
mail.show_mail_menu(name)
61+
return
62+
end
5363
if mail.selected_idxs.multipleselection[name] then
5464
if not mail.selected_idxs.inbox[name] then
5565
mail.selected_idxs.inbox[name] = {}
@@ -80,6 +90,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
8090

8191
if fields.sent then -- sent table
8292
local evt = minetest.explode_table_event(fields.sent)
93+
if evt.row == 1 then -- header
94+
if mail.selected_idxs.sortfield[name] == evt.column-1 then -- if already this field, then change direction
95+
mail.selected_idxs.sortdirection[name] = mail.selected_idxs.sortdirection[name] == "2" and "1" or "2"
96+
end
97+
mail.selected_idxs.sortfield[name] = evt.column-1 -- update column
98+
mail.show_mail_menu(name)
99+
return
100+
end
83101
if mail.selected_idxs.multipleselection[name] then
84102
if not mail.selected_idxs.sent[name] then
85103
mail.selected_idxs.sent[name] = {}
@@ -110,6 +128,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
110128

111129
if fields.drafts then -- drafts table
112130
local evt = minetest.explode_table_event(fields.drafts)
131+
if evt.row == 1 then -- header
132+
if mail.selected_idxs.sortfield[name] == evt.column-1 then -- if already this field, then change direction
133+
mail.selected_idxs.sortdirection[name] = mail.selected_idxs.sortdirection[name] == "2" and "1" or "2"
134+
end
135+
mail.selected_idxs.sortfield[name] = evt.column-1 -- update column
136+
mail.show_mail_menu(name)
137+
return
138+
end
113139
mail.selected_idxs.drafts[name] = evt.row - 1
114140
if evt.type == "DCL" and messagesDrafts[mail.selected_idxs.drafts[name]] then
115141
mail.show_compose(name,
@@ -248,7 +274,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
248274
if #mail.selected_idxs.sent[name] >= #getOutbox() then -- if selection is full
249275
mail.selected_idxs.sent[name] = {}
250276
else
251-
mail.selected_idxs.inbox[name] = {} -- reset to avoid duplicates
277+
mail.selected_idxs.sent[name] = {} -- reset to avoid duplicates
252278
mail.selected_idxs.multipleselection[name] = true
253279
for _, msg in ipairs(getOutbox()) do
254280
table.insert(mail.selected_idxs.sent[name], msg.id)

0 commit comments

Comments
 (0)