mirror of
https://github.com/sky-systems/sky_phone.git
synced 2026-09-04 17:23:25 +00:00
1.7 KiB
1.7 KiB
callback — Client ↔ Server communication
Use lib.callback for request/response between client and server. Prefer this over TriggerServerCallback/RegisterNetCallback patterns.
Server: register a callback (handle client requests)
-- Server: register handler. First arg is source (player id), then any args sent by client.
lib.callback.register('myresource:getData', function(source, key)
local value = GetStoredValue(key)
return value
end)
Client: call server (callback style)
lib.callback('myresource:getData', false, function(value)
if value then
print(value)
end
end, 'someKey')
Second argument is delay (number or false): cooldown in ms before the callback can be triggered again; use false for no limit.
Client: call server (await — yields until response)
local value = lib.callback.await('myresource:getData', false, 'someKey')
if value then
print(value)
end
Server: call client
-- Server: trigger client callback
lib.callback('ox:getNearbyVehicles', source, function(vehicles)
for i = 1, #vehicles do
-- use vehicles[i]
end
end, radius)
-- Server: await client response
local vehicles = lib.callback.await('ox:getNearbyVehicles', source, radius)
Client: register a callback (handle server requests)
lib.callback.register('ox:getNearbyVehicles', function(radius)
local coords = GetEntityCoords(cache.ped)
return lib.getNearbyVehicles(coords, radius, true)
end)
Use a unique name (e.g. resourcename:action) to avoid clashes. Full docs: Callback – coxdocs.dev and Client.