From e95ae858df09046f6d91e8c0fd2dc89e0d4d1d6f Mon Sep 17 00:00:00 2001 From: Linden <65407488+thelindat@users.noreply.github.com> Date: Sun, 19 Jun 2022 13:08:28 +1000 Subject: [PATCH] fix(callback): handle external resource events Calling registered callback events in another resource should respond to the invoking resource. --- imports/callback/client.lua | 12 +++++------- imports/callback/server.lua | 12 +++++------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/imports/callback/client.lua b/imports/callback/client.lua index ca1f90c..de5cd14 100644 --- a/imports/callback/client.lua +++ b/imports/callback/client.lua @@ -1,8 +1,8 @@ local events = {} local timers = {} -local cbEvent = ('__cb_%s'):format(cache.resource) +local cbEvent = ('__ox_cb_%s') -RegisterNetEvent(cbEvent, function(key, ...) +RegisterNetEvent(cbEvent:format(cache.resource), function(key, ...) local cb = events[key] return cb and cb(...) end) @@ -38,7 +38,7 @@ local function triggerServerCallback(_, event, delay, cb, ...) key = ('%s:%s'):format(event, math.random(0, 100000)) until not events[key] - TriggerServerEvent(('__cb_%s'):format(event), key, ...) + TriggerServerEvent(cbEvent:format(event), cache.resource, key, ...) local promise = not cb and promise.new() @@ -73,10 +73,8 @@ end ---@param cb function --- Registers an event handler and callback function to respond to server requests. function callback.register(name, cb) - name = ('__cb_%s'):format(name) - - RegisterNetEvent(name, function(key, ...) - TriggerServerEvent(cbEvent, key, { cb(...) }) + RegisterNetEvent(cbEvent:format(name), function(resource, key, ...) + TriggerServerEvent(cbEvent:format(resource), key, { cb(...) }) end) end diff --git a/imports/callback/server.lua b/imports/callback/server.lua index 1071673..05dedb0 100644 --- a/imports/callback/server.lua +++ b/imports/callback/server.lua @@ -1,7 +1,7 @@ local events = {} -local cbEvent = ('__cb_%s'):format(cache.resource) +local cbEvent = ('__ox_cb_%s') -RegisterNetEvent(cbEvent, function(key, ...) +RegisterNetEvent(cbEvent:format(cache.resource), function(key, ...) local cb = events[key] return cb and cb(...) end) @@ -19,7 +19,7 @@ local function triggerClientCallback(_, event, playerId, cb, ...) key = ('%s:%s:%s'):format(event, math.random(0, 100000), playerId) until not events[key] - TriggerClientEvent(('__cb_%s'):format(event), playerId, key, ...) + TriggerClientEvent(cbEvent:format(event), playerId, cache.resource, key, ...) local promise = not cb and promise.new() @@ -54,10 +54,8 @@ end ---@param cb function --- Registers an event handler and callback function to respond to client requests. function callback.register(name, cb) - name = ('__cb_%s'):format(name) - - RegisterNetEvent(name, function(key, ...) - TriggerClientEvent(cbEvent, source, key, { cb(source, ...) }) + RegisterNetEvent(cbEvent:format(name), function(resource, key, ...) + TriggerClientEvent(cbEvent:format(resource), source, key, { cb(source, ...) }) end) end