local calls = {} local callCount = 0 -- Functions exports('GetDispatchCalls', function() return calls end) -- Events RegisterServerEvent('ps-dispatch:server:notify', function(data) callCount = callCount + 1 data.id = callCount data.time = os.time() * 1000 data.units = {} data.responses = {} if #calls > 0 then if calls[#calls] == data then return end end if #calls >= Config.MaxCallList then table.remove(calls, 1) end calls[#calls + 1] = data TriggerClientEvent('ps-dispatch:client:notify', -1, data) end) RegisterServerEvent('ps-dispatch:server:attach', function(id, player) for i=1, #calls do if calls[i]['id'] == id then for j = 1, #calls[i]['units'] do if calls[i]['units'][j]['citizenid'] == player.citizenid then return end end calls[i]['units'][#calls[i]['units'] + 1] = player return end end end) RegisterServerEvent('ps-dispatch:server:detach', function(id, player) for i = #calls, 1, -1 do if calls[i]['id'] == id then if calls[i]['units'] and (#calls[i]['units'] or 0) > 0 then for j = #calls[i]['units'], 1, -1 do if calls[i]['units'][j]['citizenid'] == player.citizenid then table.remove(calls[i]['units'], j) end end end return end end end) -- Callbacks lib.callback.register('ps-dispatch:callback:getLatestDispatch', function(source) return calls[#calls] end) lib.callback.register('ps-dispatch:callback:getCalls', function(source) return calls end) -- Commands lib.addCommand('dispatch', { help = locale('open_dispatch') }, function(source, raw) TriggerClientEvent("ps-dispatch:client:openMenu", source, calls) end) lib.addCommand('911', { help = 'Send a message to 911', params = { { name = 'message', type = 'string', help = '911 Message' }}, }, function(source, args, raw) local fullMessage = raw:sub(5) TriggerClientEvent('ps-dispatch:client:sendEmergencyMsg', source, fullMessage, "911", false) end) lib.addCommand('911a', { help = 'Send an anonymous message to 911', params = { { name = 'message', type = 'string', help = '911 Message' }}, }, function(source, args, raw) local fullMessage = raw:sub(5) TriggerClientEvent('ps-dispatch:client:sendEmergencyMsg', source, fullMessage, "911", true) end) lib.addCommand('311', { help = 'Send a message to 311', params = { { name = 'message', type = 'string', help = '311 Message' }}, }, function(source, args, raw) local fullMessage = raw:sub(5) TriggerClientEvent('ps-dispatch:client:sendEmergencyMsg', source, fullMessage, "311", false) end) lib.addCommand('311a', { help = 'Send an anonymous message to 311', params = { { name = 'message', type = 'string', help = '311 Message' }}, }, function(source, args, raw) local fullMessage = raw:sub(5) TriggerClientEvent('ps-dispatch:client:sendEmergencyMsg', source, fullMessage, "311", true) end)