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)
|
|
|