refactor(init): separate global and local cache

Store temporary data in the _cache local, separate from the global cache.

This allows constants and other values to be added, rather than being
wiped every minute.
This commit is contained in:
Linden
2022-05-25 13:28:19 +10:00
parent df94633998
commit 3bb946001b

View File

@@ -145,21 +145,14 @@ local ox = GetResourceState('ox_core') ~= 'missing' and setmetatable({}, {
groups = GetResourceState('ox_groups') ~= 'missing',
}
local cache = setmetatable({}, {
local _cache = setmetatable({}, {
__index = function(self, key)
return rawset(self, key, exports[ox_lib]['cache'](nil, key) or false)[key]
return rawset(self, key, exports[ox_lib].cache(nil, key) or false)[key]
end,
__call = function(self)
table.wipe(self)
if service == 'client' then
self.playerId = PlayerId()
self.serverId = GetPlayerServerId(self.playerId)
end
self.resource = GetCurrentResourceName()
if ox.groups then
self.groups = setmetatable({}, {
__index = function(groups, index)
@@ -171,9 +164,21 @@ local cache = setmetatable({}, {
end
})
cache = setmetatable({
resource = GetCurrentResourceName(),
}, {
__index = _cache,
__metatable = _cache
})
if service == 'client' then
cache.playerId = PlayerId()
cache.serverId = GetPlayerServerId(cache.playerId)
end
Citizen.CreateThreadNow(function()
while true do
cache()
_cache()
Wait(60000)
end
end)
@@ -184,8 +189,6 @@ AddEventHandler('ox_lib:updateCache', function(data)
lib.onCache[key](value)
end
cache[key] = value
_cache[key] = value
end
end)
_ENV.cache = cache