mirror of
https://github.com/mt-mods/mail.git
synced 2025-04-30 16:31:43 -04:00
Rework settings storage
This commit is contained in:
parent
a34921ed5d
commit
14d333b208
1 changed files with 5 additions and 18 deletions
23
storage.lua
23
storage.lua
|
@ -262,30 +262,17 @@ end
|
||||||
|
|
||||||
function mail.get_setting(playername, setting_name)
|
function mail.get_setting(playername, setting_name)
|
||||||
local entry = mail.get_storage_entry(playername)
|
local entry = mail.get_storage_entry(playername)
|
||||||
local setting = nil
|
if entry.settings[setting_name] ~= nil then
|
||||||
for _, existing_setting in ipairs(entry.settings) do
|
return entry.settings[setting_name]
|
||||||
if existing_setting.name == setting_name then
|
else
|
||||||
setting = existing_setting.value
|
return mail.get_setting_default_value(setting_name)
|
||||||
break
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
if setting == nil then setting = mail.get_setting_default_value(setting_name) end
|
|
||||||
return setting
|
|
||||||
end
|
|
||||||
|
|
||||||
-- add or update a setting
|
-- add or update a setting
|
||||||
function mail.set_setting(playername, key, value)
|
function mail.set_setting(playername, key, value)
|
||||||
local entry = mail.get_storage_entry(playername)
|
local entry = mail.get_storage_entry(playername)
|
||||||
for _, existing_setting in ipairs(entry.settings) do
|
entry.settings[key] = value
|
||||||
if existing_setting.name == key then
|
|
||||||
-- update
|
|
||||||
existing_setting.value = value
|
|
||||||
mail.set_storage_entry(playername, entry)
|
|
||||||
return
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- insert
|
|
||||||
table.insert(entry.settings, { name = key, value = value })
|
|
||||||
mail.set_storage_entry(playername, entry)
|
mail.set_storage_entry(playername, entry)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue