From 3bb946001b559b698b180a2f47979ea9d729544c Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Wed, 25 May 2022 13:28:19 +1000 Subject: [PATCH] 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. --- init.lua | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/init.lua b/init.lua index 688be88..e3fccd9 100644 --- a/init.lua +++ b/init.lua @@ -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