Facebook
From adawd, 2 Months ago, written in Lua.
Embed
Download Paste or View Raw
Hits: 247
  1. local responded = false
  2. local blockrequests = false
  3. local source, time, title, message, trigger, ClientOrServer, parameters, parametersNum
  4.  
  5. local function toggleNuiFrame(shouldShow)
  6.   SetNuiFocus(shouldShow, shouldShow)
  7.   SendReactMessage('setVisible', shouldShow)
  8. end
  9.  
  10. RegisterNUICallback('hideFrame', function(_, cb)
  11.   toggleNuiFrame(false)
  12.   debugPrint('Hide NUI frame')
  13.   cb({})
  14. end)
  15.  
  16. RegisterNuiCallback("getConfig", function(data, cb)
  17.   cb(Config)
  18. end)
  19. -- Request
  20. RegisterNetEvent('cx_requests:ShowMenu')
  21. AddEventHandler('cx_requests:ShowMenu',
  22.   function(sourceS, timeS, titleS, messageS, triggerS, ClientOrServerS, parametersS, parametersNumS)
  23.     source, time, title, message, trigger, ClientOrServer, parameters, parametersNum = sourceS, timeS, titleS, messageS,
  24.         triggerS, ClientOrServerS, parametersS, parametersNumS
  25.     if not blockrequests then
  26.       SetNuiFocus(true, true)
  27.       SendReactMessage("open", {
  28.         title = title,
  29.         subtitle = message,
  30.       })
  31.       responded = false
  32.  
  33.       local time2 = time - 1
  34.  
  35.       Citizen.SetTimeout(time, function()
  36.         time2 = time + 1
  37.       end)
  38.  
  39.       while time > time2 do
  40.         if responded then
  41.           break
  42.         end
  43.         Wait(1)
  44.       end
  45.  
  46.       if not responded then
  47.         TriggerServerEvent("cx_requests:ExpiredMessage", source)
  48.         -- exports['okokNotify']:Alert("EXPIRED", "Time expired! ", 5000, 'warning')
  49.         SetNuiFocus(false, false)
  50.         SendNUIMessage({
  51.           action = 'close',
  52.         })
  53.       end
  54.     else
  55.       TriggerServerEvent("cx_requests:BlockedMessage", source)
  56.       TriggerServerEvent("cx_requests:SomeoneTriedMessage", source)
  57.     end
  58.   end)
  59.  
  60. RegisterNUICallback("action", function(data)
  61.   if data.action == "acceptRequest" then
  62.     responded = true
  63.     TriggerServerEvent("cx_requests:AcceptedMessage", source)
  64.     -- exports['okokNotify']:Alert("ACCEPTED", "You accepted the request! ", 5000, 'success')
  65.     SetNuiFocus(false, false)
  66.     if ClientOrServer:lower() == "server" then
  67.       if parametersNum == 0 or parameters == nil or parametersNum == nil then
  68.         TriggerServerEvent(trigger)
  69.       elseif parametersNum == 1 then
  70.         TriggerServerEvent(trigger, parameters)
  71.       elseif parametersNum == 2 then
  72.         local param1, param2 = parameters:match("([^,]+),([^,]+)")
  73.         TriggerServerEvent(trigger, param1, param2)
  74.       elseif parametersNum == 3 then
  75.         local param1, param2, param3 = parameters:match("([^,]+),([^,]+),([^,]+)")
  76.         TriggerServerEvent(trigger, param1, param2, param3)
  77.       elseif parametersNum == 4 then
  78.         local param1, param2, param3, param4 = parameters:match("([^,]+),([^,]+),([^,]+),([^,]+)")
  79.         TriggerServerEvent(trigger, param1, param2, param3, param4)
  80.       elseif parametersNum == 5 then
  81.         local param1, param2, param3, param4, param5 = parameters:match("([^,]+),([^,]+),([^,]+),([^,]+),([^,]+)")
  82.         TriggerServerEvent(trigger, param1, param2, param3, param4, param5)
  83.       end
  84.     else
  85.       TriggerServerEvent("cx_requests:ExecuteClient", source, trigger, parameters, parametersNum)
  86.     end
  87.   elseif data.action == "declineRequest" or data.action == "closeEsc" then
  88.     responded = true
  89.     TriggerServerEvent("cx_requests:DeniedMessage", source)
  90.     -- exports['okokNotify']:Alert("DENIED", "You denied the request! ", 5000, 'error')
  91.     SetNuiFocus(false, false)
  92.   end
  93. end)
  94.  
  95. -- Block Request
  96. RegisterCommand("requests", function()
  97.   SetNuiFocus(true, true)
  98.   SendReactMessage(
  99.     'openblock',
  100.     { status = blockrequests })
  101. end, false)
  102.  
  103. RegisterNUICallback("action", function(data)
  104.   if data.action == "saveBlockRequest" then
  105.     if data.status == "disabled" then
  106.       blockrequests = true
  107.       -- exports['okokNotify']:Alert("REQUESTS", "Requests have been disabled! ", 5000, 'error')
  108.     elseif data.status == "enabled" then
  109.       blockrequests = false
  110.       -- exports['okokNotify']:Alert("REQUESTS", "Requests have been enabled! ", 5000, 'success')
  111.     end
  112.   end
  113. end)
  114.  
  115. -- Triggers
  116. function requestMenu(id, time, title, message, trigger, side, parameters, parametersNum)
  117.   TriggerServerEvent('cx_requests:ShowMenuData', id, time, title, message, trigger, side, parameters, parametersNum)
  118.   -- exports['okokNotify']:Alert("REQUESTS", "Request sent! ", 5000, 'info')
  119. end
  120.  
  121. RegisterNetEvent('cx_requests:RequestMenu')
  122. AddEventHandler('cx_requests:RequestMenu', function(id, time, title, message, trigger, side, parameters, parametersNum)
  123.   requestMenu(id, time, title, message, trigger, side, parameters, parametersNum)
  124. end)
  125.