123456789101112131415161718192021222324252627282930313233 |
- -- TODO: maybe local cache?
- function getMailFile(playername)
- local saneplayername = string.gsub(playername, "[.|/]", "")
- return mail.maildir .. "/" .. saneplayername .. ".json"
- end
- mail.getMessages = function(playername)
- local file = io.open(getMailFile(playername), "r")
- local messages = {}
- if file then
- local json = file:read("*a")
- messages = minetest.parse_json(json or "[]") or {}
- mail.hud_update(playername, messages)
- file:close()
- end
- return messages
- end
- mail.setMessages = function(playername, messages)
- local file = io.open(getMailFile(playername),"w")
- local json = minetest.write_json(messages)
- if file and file:write(json) and file:close() then
- mail.hud_update(playername, messages)
- return true
- else
- minetest.log("error","[mail] Save failed - messages may be lost!")
- return false
- end
- end
|