diff --git a/ProfileStore.luau b/ProfileStore.luau index 5b196af..b6577a9 100644 --- a/ProfileStore.luau +++ b/ProfileStore.luau @@ -1199,39 +1199,32 @@ local ProfileStore: ProfileStoreModule = { OnCriticalToggle = Signal.New(), -- (is_critical) DataStoreState = "NotReady", -- ("NotReady", "NoInternet", "NoAccess", "Access") + _constantSetters = { + AUTO_SAVE_PERIOD = function(v) AUTO_SAVE_PERIOD = v end, + LOAD_REPEAT_PERIOD = function(v) LOAD_REPEAT_PERIOD = v end, + FIRST_LOAD_REPEAT = function(v) FIRST_LOAD_REPEAT = v end, + SESSION_STEAL = function(v) SESSION_STEAL = v end, + ASSUME_DEAD = function(v) ASSUME_DEAD = v end, + START_SESSION_TIMEOUT = function(v) START_SESSION_TIMEOUT = v end, + CRITICAL_STATE_ERROR_COUNT = function(v) CRITICAL_STATE_ERROR_COUNT = v end, + CRITICAL_STATE_ERROR_EXPIRE = function(v) CRITICAL_STATE_ERROR_EXPIRE = v end, + CRITICAL_STATE_EXPIRE = function(v) CRITICAL_STATE_EXPIRE = v end, + MAX_MESSAGE_QUEUE = function(v) MAX_MESSAGE_QUEUE = v end, + }, } ProfileStore.__index = ProfileStore function ProfileStore.SetConstant(name, value) - if type(value) ~= "number" then - error(`[{script.Name}]: Invalid value type`) - end - - if name == "AUTO_SAVE_PERIOD" then - AUTO_SAVE_PERIOD = value - elseif name == "LOAD_REPEAT_PERIOD" then - LOAD_REPEAT_PERIOD = value - elseif name == "FIRST_LOAD_REPEAT" then - FIRST_LOAD_REPEAT = value - elseif name == "SESSION_STEAL" then - SESSION_STEAL = value - elseif name == "ASSUME_DEAD" then - ASSUME_DEAD = value - elseif name == "START_SESSION_TIMEOUT" then - START_SESSION_TIMEOUT = value - elseif name == "CRITICAL_STATE_ERROR_COUNT" then - CRITICAL_STATE_ERROR_COUNT = value - elseif name == "CRITICAL_STATE_ERROR_EXPIRE" then - CRITICAL_STATE_ERROR_EXPIRE = value - elseif name == "CRITICAL_STATE_EXPIRE" then - CRITICAL_STATE_EXPIRE = value - elseif name == "MAX_MESSAGE_QUEUE" then - MAX_MESSAGE_QUEUE = value - else - error(`[{script.Name}]: Invalid constant name was provided`) - end - + error(`[{script.Name}]: Invalid value type`) + end + + local setter = ProfileStore._constantSetters[name] + if setter then + setter(value) + else + error(`[{script.Name}]: Invalid constant name was provided`) + end end function ProfileStore.Test()