107 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| 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)
 | |
| 
 | 
