forked from rojo-rbx/rojo
* HTTP responses in the error range (400+) now properly turn into errors * ROJO_EPIPHANY_DEV_CREATE now creates more verbose configuration * Default configuration values are now much more explicit * Errors that cause session termination are labeled more clearly.
71 lines
1.4 KiB
Lua
71 lines
1.4 KiB
Lua
local Config = require(script.Parent.Config)
|
|
|
|
local VALUES = {
|
|
LogLevel = {
|
|
type = "IntValue",
|
|
defaultUserValue = 2,
|
|
defaultDevValue = 3,
|
|
},
|
|
}
|
|
|
|
local CONTAINER_NAME = "RojoDevSettings" .. Config.codename
|
|
|
|
local function getValueContainer()
|
|
return game:FindFirstChild(CONTAINER_NAME)
|
|
end
|
|
|
|
local valueContainer = getValueContainer()
|
|
|
|
local function getStoredValue(name)
|
|
if valueContainer == nil then
|
|
return nil
|
|
end
|
|
|
|
local valueObject = valueContainer:FindFirstChild(name)
|
|
|
|
if valueObject == nil then
|
|
return nil
|
|
end
|
|
|
|
return valueObject.Value
|
|
end
|
|
|
|
local function setStoredValue(name, kind, value)
|
|
local object = valueContainer:FindFirstChild(name)
|
|
|
|
if object == nil then
|
|
object = Instance.new(kind)
|
|
object.Name = name
|
|
object.Parent = valueContainer
|
|
end
|
|
|
|
object.Value = value
|
|
end
|
|
|
|
local function createAllValues()
|
|
valueContainer = getValueContainer()
|
|
|
|
if valueContainer == nil then
|
|
valueContainer = Instance.new("Folder")
|
|
valueContainer.Name = CONTAINER_NAME
|
|
valueContainer.Parent = game
|
|
end
|
|
|
|
for name, value in pairs(VALUES) do
|
|
setStoredValue(name, value.type, value.defaultDevValue)
|
|
end
|
|
end
|
|
|
|
_G[("ROJO_%s_DEV_CREATE"):format(Config.codename:upper())] = createAllValues
|
|
|
|
local DevSettings = {}
|
|
|
|
function DevSettings:isEnabled()
|
|
return valueContainer ~= nil
|
|
end
|
|
|
|
function DevSettings:getLogLevel()
|
|
return getStoredValue("LogLevel") or VALUES.LogLevel.defaultUserValue
|
|
end
|
|
|
|
return DevSettings |