Skip to content

Commit

Permalink
refactor(init): separate global and local cache
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
thelindat committed May 25, 2022
1 parent df94633 commit 3bb9460
Showing 1 changed file with 16 additions and 13 deletions.
29 changes: 16 additions & 13 deletions init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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)
Expand All @@ -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

0 comments on commit 3bb9460

Please sign in to comment.