26 lines
895 B
Lua
26 lines
895 B
Lua
local handlers = {}
|
|
|
|
function RegisterServerCallback(name, fn, secure)
|
|
handlers[name] = {
|
|
secure = secure,
|
|
invoker = GetInvokingResource() or 'kq_link',
|
|
callback = fn
|
|
}
|
|
end
|
|
|
|
RegisterNetEvent("kq_link:server:callback")
|
|
AddEventHandler("kq_link:server:callback", function(name, id, invoker, ...)
|
|
local src, handler = source, handlers[name]
|
|
|
|
if not handler or not handler.callback then
|
|
return TriggerClientEvent("kq_link:client:callback-response", src, name, id, false, "no handler")
|
|
end
|
|
|
|
if handler.secure and invoker ~= handler.invoker then
|
|
return TriggerClientEvent("kq_link:client:callback-response", src, name, id, false, "unauthorized invoker " .. invoker)
|
|
end
|
|
|
|
local ok, a, b, c = pcall(handler.callback, src, ...)
|
|
TriggerClientEvent("kq_link:client:callback-response", src, name, id, ok, a, b, c)
|
|
end)
|