diff --git a/[core]/es_extended/server/modules/callback.lua b/[core]/es_extended/server/modules/callback.lua index b615be21..f517531e 100644 --- a/[core]/es_extended/server/modules/callback.lua +++ b/[core]/es_extended/server/modules/callback.lua @@ -21,54 +21,21 @@ RegisterNetEvent('esx:triggerServerCallback', function(eventName, requestId, inv end, ...) end) -ESX.TriggerClientCallback = setmetatable({ - ---@param player number? - ---@param eventName string - ---@param ... any - Await = function(player, eventName, ...) - player = tonumber(player) +---@param player number playerId +---@param eventName string +---@param callback function +---@param ... any +ESX.TriggerClientCallback = function(player, eventName, callback, ...) + clientRequests[RequestId] = callback - assert(player, 'Argument 1 `player` is not a number!') - assert(type(eventName) == 'string', 'Argument 2 `eventName` is not a string!') + TriggerClientEvent('esx:triggerClientCallback', player, eventName, RequestId, GetInvokingResource() or "unknown", ...) - local p = promise.new() - - clientRequests[RequestId] = p - - TriggerClientEvent('esx:triggerClientCallback', player, eventName, RequestId, GetInvokingResource() or "unknown", ...) - - RequestId = RequestId + 1 - - return Citizen.Await(p) - end -}, { - ---@param player number? playerId - ---@param eventName string - ---@param callback function - ---@param ... any - __call = function(_, player, eventName, callback, ...) - player = tonumber(player) - - assert(player, 'Argument 1 `player` is not a number!') - assert(type(eventName) == 'string', 'Argument 2 `eventName` is not a string!') - assert(type(callback) == 'function', 'Argument 3 `callback` is not a function!') - - clientRequests[RequestId] = callback - - TriggerClientEvent('esx:triggerClientCallback', player, eventName, RequestId, GetInvokingResource() or "unknown", ...) - - RequestId = RequestId + 1 - end -}) + RequestId = RequestId + 1 +end RegisterNetEvent('esx:clientCallback', function(requestId, invoker, ...) if not clientRequests[requestId] then - return print(('[^1ERROR^7] Client Callback with requestId ^5%s^7 Was Called by ^5%s^7 but does not exist.'):format(requestId, invoker)) - end - - if type(clientRequests[requestId]) == 'table' then - clientRequests[requestId]:resolve(...) - return + return print(('[^1ERROR^7] Client Callback with requestId ^5%s^7 Was Called by ^5%s^7 but does not exist.'):format(requestId, invoker)) end clientRequests[requestId](...)