mirror of
https://github.com/rojo-rbx/rojo.git
synced 2026-10-22 21:41:37 +00:00
correctly save sync info by project name attribute
This commit is contained in:
parent
24e990f996
commit
1d424ce395
1 changed files with 24 additions and 13 deletions
|
|
@ -255,18 +255,29 @@ function App:checkForUpdates()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function getActiveProjectIdentifier(): string
|
||||||
|
local placeId = tostring(game.PlaceId)
|
||||||
|
|
||||||
|
local attributeProjectName = workspace:GetAttribute("__Rojo_ProjectName")
|
||||||
|
assert(typeof(attributeProjectName) == "string" or typeof(attributeProjectName) == "nil", `Expected Workspace attribute '__Rojo_ProjectName' to be a string or nil, got {typeof(attributeProjectName)}`)
|
||||||
|
|
||||||
|
local identifier = attributeProjectName or placeId
|
||||||
|
|
||||||
|
return identifier
|
||||||
|
end
|
||||||
|
|
||||||
function App:getPriorSyncInfo(): { host: string?, port: string?, projectName: string?, timestamp: number? }
|
function App:getPriorSyncInfo(): { host: string?, port: string?, projectName: string?, timestamp: number? }
|
||||||
local priorSyncInfos = Settings:get("priorEndpoints")
|
local priorSyncInfos = Settings:get("priorEndpoints")
|
||||||
if not priorSyncInfos then
|
if not priorSyncInfos then
|
||||||
return {}
|
return {}
|
||||||
end
|
end
|
||||||
|
|
||||||
local id = tostring(game.PlaceId)
|
local identifier = getActiveProjectIdentifier()
|
||||||
if ignorePlaceIds[id] and not workspace:GetAttribute("__Rojo_ProjectName") then
|
if ignorePlaceIds[identifier] then
|
||||||
return {}
|
return {}
|
||||||
end
|
end
|
||||||
|
|
||||||
return priorSyncInfos[id] or {}
|
return priorSyncInfos[identifier] or {}
|
||||||
end
|
end
|
||||||
|
|
||||||
function App:setPriorSyncInfo(host: string, port: string, projectName: string)
|
function App:setPriorSyncInfo(host: string, port: string, projectName: string)
|
||||||
|
|
@ -278,25 +289,25 @@ function App:setPriorSyncInfo(host: string, port: string, projectName: string)
|
||||||
local now = os.time()
|
local now = os.time()
|
||||||
|
|
||||||
-- Clear any stale saves to avoid disc bloat
|
-- Clear any stale saves to avoid disc bloat
|
||||||
for placeId, syncInfo in priorSyncInfos do
|
for identifier, syncInfo in priorSyncInfos do
|
||||||
if now - (syncInfo.timestamp or now) > 12_960_000 then
|
if now - (syncInfo.timestamp or now) > 12_960_000 then
|
||||||
priorSyncInfos[placeId] = nil
|
priorSyncInfos[identifier] = nil
|
||||||
Log.trace("Cleared stale saved endpoint for {}", placeId)
|
Log.trace("Cleared stale saved endpoint for {}", identifier)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local id = tostring(game.PlaceId)
|
local identifier = getActiveProjectIdentifier()
|
||||||
if ignorePlaceIds[id] and workspace:GetAttribute("__Rojo_ProjectName") ~= projectName then
|
if ignorePlaceIds[identifier] then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
priorSyncInfos[id] = {
|
priorSyncInfos[identifier] = {
|
||||||
host = if host ~= Config.defaultHost then host else nil,
|
host = if host ~= Config.defaultHost then host else nil,
|
||||||
port = if port ~= Config.defaultPort then port else nil,
|
port = if port ~= Config.defaultPort then port else nil,
|
||||||
projectName = projectName,
|
projectName = projectName,
|
||||||
timestamp = now,
|
timestamp = now,
|
||||||
}
|
}
|
||||||
Log.trace("Saved last used endpoint for {}", game.PlaceId)
|
Log.trace("Saved last used endpoint for {}", identifier)
|
||||||
|
|
||||||
Settings:set("priorEndpoints", priorSyncInfos)
|
Settings:set("priorEndpoints", priorSyncInfos)
|
||||||
end
|
end
|
||||||
|
|
@ -307,9 +318,9 @@ function App:forgetPriorSyncInfo()
|
||||||
priorSyncInfos = {}
|
priorSyncInfos = {}
|
||||||
end
|
end
|
||||||
|
|
||||||
local id = tostring(game.PlaceId)
|
local identifier = getActiveProjectIdentifier()
|
||||||
priorSyncInfos[id] = nil
|
priorSyncInfos[identifier] = nil
|
||||||
Log.trace("Erased last used endpoint for {}", game.PlaceId)
|
Log.trace("Erased last used endpoint for {}", identifier)
|
||||||
|
|
||||||
Settings:set("priorEndpoints", priorSyncInfos)
|
Settings:set("priorEndpoints", priorSyncInfos)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue