mirror of
https://github.com/mt-mods/mail.git
synced 2025-04-30 08:21:44 -04:00
Add support for shared settings
This commit is contained in:
parent
3eafeb4cf8
commit
a2d680eda8
1 changed files with 17 additions and 8 deletions
25
storage.lua
25
storage.lua
|
@ -393,24 +393,33 @@ function mail.extractMaillists(receivers_string, maillists_owner)
|
|||
return receivers
|
||||
end
|
||||
|
||||
function mail.get_setting_default_value(setting_name)
|
||||
return mail.settings[setting_name].default
|
||||
function mail.get_setting_default_value(key)
|
||||
return mail.settings[key].default
|
||||
end
|
||||
|
||||
function mail.get_setting(playername, setting_name)
|
||||
function mail.get_setting(playername, key)
|
||||
local entry = mail.get_storage_entry(playername)
|
||||
if entry.settings[setting_name] ~= nil then
|
||||
return entry.settings[setting_name]
|
||||
else
|
||||
return mail.get_setting_default_value(setting_name)
|
||||
local value = mail.get_setting_default_value(key)
|
||||
if entry.settings[key] ~= nil then
|
||||
value = entry.settings[key]
|
||||
end
|
||||
|
||||
if mail.settings[key].sync then -- in case this setting is shared with another mod
|
||||
value = mail.settings[key].sync(playername, key) -- get new value
|
||||
mail.set_setting(playername, key, value, false) -- update the setting in mail storage and don't transfer it again
|
||||
end
|
||||
|
||||
return value
|
||||
end
|
||||
|
||||
-- add or update a setting
|
||||
function mail.set_setting(playername, key, value)
|
||||
function mail.set_setting(playername, key, value, not_transfer)
|
||||
local entry = mail.get_storage_entry(playername)
|
||||
entry.settings[key] = value
|
||||
mail.set_storage_entry(playername, entry)
|
||||
if not not_transfer and mail.settings[key].transfer then -- in case this setting is shared with another mod
|
||||
mail.settings[key].transfer(playername, key, value)
|
||||
end
|
||||
end
|
||||
|
||||
function mail.reset_settings(playername)
|
||||
|
|
Loading…
Add table
Reference in a new issue