From 4878c0e2e10b7eefe9e425d4480b1760f80f727f Mon Sep 17 00:00:00 2001 From: cheapie Date: Sat, 16 May 2026 09:26:23 -0500 Subject: Fix modified setting indicator --- init.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'init.lua') diff --git a/init.lua b/init.lua index 86c116a..500c33b 100644 --- a/init.lua +++ b/init.lua @@ -72,7 +72,8 @@ function playersettings.openform(player) else row = def.shortdesc end - if (setting_get_no_fallback(name, setting, false)) ~= nil then + local setvalue = setting_get_no_fallback(name, setting, false) + if setvalue ~= nil and setvalue ~= playersettings.getdefault(setting) then -- 'Value is set' indicator row = row .. " *" end @@ -171,10 +172,12 @@ function playersettings.handleform(player,form,fields) -- May also be triggered by `fields.bset` if def.type == "boolean" and fields.checkbox then playersettings.set(name,settingname,fields.checkbox == "true") + if not fields.quit then playersettings.openform(player) end elseif def.type == "enum" and fields.dropdown then local value = def.values[tonumber(fields.dropdown)] if value then playersettings.set(name, settingname, value) + if not fields.quit then playersettings.openform(player) end end elseif def.type == "number" and fields.field then local value = tonumber(fields.field) @@ -183,10 +186,12 @@ function playersettings.handleform(player,form,fields) and ((not def.min) or (value >= def.min)) then if def.integer then value = math.floor(value) end playersettings.set(name,settingname,value) + if not fields.quit then playersettings.openform(player) end end elseif def.type == "string" and fields.field then local value = fields.field:sub(1, def.max) playersettings.set(name,settingname,value) + if not fields.quit then playersettings.openform(player) end end end if fields.settinglist then -- cgit v1.2.3