diff --git a/fxmanifest.lua b/fxmanifest.lua index 0d31f7d..3b5b69a 100644 --- a/fxmanifest.lua +++ b/fxmanifest.lua @@ -37,11 +37,13 @@ shared_scripts { } client_scripts { + 'imports/callback/client.lua', 'resource/**/client.lua', 'resource/**/client/*.lua' } server_scripts { + 'imports/callback/server.lua', 'resource/**/server.lua', 'resource/**/server/*.lua' } diff --git a/imports/callback/client.lua b/imports/callback/client.lua index 7cc2ee4..3cbe40f 100644 --- a/imports/callback/client.lua +++ b/imports/callback/client.lua @@ -59,14 +59,14 @@ local function triggerServerCallback(_, event, delay, cb, ...) end ---@overload fun(event: string, delay: number, cb: function, ...) -local callback = setmetatable({}, { +lib.callback = setmetatable({}, { __call = triggerServerCallback }) ---@param event string ---@param delay number prevent the event from being called for the given time --- Sends an event to the server and halts the current thread until a response is returned. -function callback.await(event, delay, ...) +function lib.callback.await(event, delay, ...) return triggerServerCallback(_, event, delay, false, ...) end @@ -87,10 +87,10 @@ local pcall = pcall ---@param name string ---@param cb function --- Registers an event handler and callback function to respond to server requests. -function callback.register(name, cb) +function lib.callback.register(name, cb) RegisterNetEvent(cbEvent:format(name), function(resource, key, ...) TriggerServerEvent(cbEvent:format(resource), key, callbackResponse(pcall(cb, ...))) end) end -return callback +return lib.callback diff --git a/imports/callback/server.lua b/imports/callback/server.lua index c02d85f..f31374f 100644 --- a/imports/callback/server.lua +++ b/imports/callback/server.lua @@ -40,14 +40,14 @@ local function triggerClientCallback(_, event, playerId, cb, ...) end ---@overload fun(event: string, playerId: number, cb: function, ...) -local callback = setmetatable({}, { +lib.callback = setmetatable({}, { __call = triggerClientCallback }) ---@param event string ---@param playerId number --- Sends an event to a client and halts the current thread until a response is returned. -function callback.await(event, playerId, ...) +function lib.callback.await(event, playerId, ...) return triggerClientCallback(_, event, playerId, false, ...) end @@ -68,10 +68,10 @@ local pcall = pcall ---@param name string ---@param cb function --- Registers an event handler and callback function to respond to client requests. -function callback.register(name, cb) +function lib.callback.register(name, cb) RegisterNetEvent(cbEvent:format(name), function(resource, key, ...) TriggerClientEvent(cbEvent:format(resource), source, key, callbackResponse(pcall(cb, source, ...))) end) end -return callback \ No newline at end of file +return lib.callback \ No newline at end of file diff --git a/resource/cache/client.lua b/resource/cache/client.lua index 8b8ab22..ca53813 100644 --- a/resource/cache/client.lua +++ b/resource/cache/client.lua @@ -1,4 +1,4 @@ -local cache = {} +local cache = _ENV.cache cache.playerId = PlayerId() cache.serverId = GetPlayerServerId(cache.playerId) @@ -44,5 +44,3 @@ end) function lib.cache(key) return cache[key] end - -_ENV.cache = cache \ No newline at end of file diff --git a/resource/main.lua b/resource/main.lua index 5f1add1..283fff6 100644 --- a/resource/main.lua +++ b/resource/main.lua @@ -1,5 +1,6 @@ lib = setmetatable({ - name = 'ox_lib' + name = 'ox_lib', + context = IsDuplicityVersion() and 'server' or 'client', }, { __newindex = function(self, name, fn) exports(name, fn) @@ -7,6 +8,10 @@ lib = setmetatable({ end }) +cache = { + resource = lib.name +} + if not LoadResourceFile(lib.name, 'web/build/index.html') then error('Unable to load UI. Build ox_lib or download the latest release.\n ^3https://github.com/overextended/ox_lib/releases/latest/download/ox_lib.zip^0') end