Rework settings storage

This commit is contained in:
Athozus 2023-05-04 20:15:20 +02:00
parent a34921ed5d
commit 14d333b208
No known key found for this signature in database
GPG key ID: B50895022E8484BF

View file

@ -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