Main/resources/[jobs]/[police]/ps-dispatch/server/main.lua
2025-06-07 08:51:21 +02:00

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)