ngd-jobduty/server/server.lua

88 lines
3.2 KiB
Lua
Raw Normal View History

2023-10-28 22:19:53 -05:00
Config.Webhook = 'CHANGEME'
2023-10-28 21:27:53 -05:00
local QBCore = exports['qb-core']:GetCoreObject()
local onDutyTimes = {}
RegisterNetEvent('ngd-policeduty:Server:Log', function()
local src = source
local xPlayer = QBCore.Functions.GetPlayer(src)
local playerName = xPlayer.PlayerData.charinfo.firstname .. " " .. xPlayer.PlayerData.charinfo.lastname
local metadata = xPlayer.PlayerData.metadata
if metadata and metadata.callsign then
playerName = playerName .. " (Callsign: " .. metadata.callsign .. ")"
end
if onDutyTimes[src] then
sendDutyTimeWebhook(src, playerName)
onDutyTimes[src] = nil
else
onDutyTimes[src] = os.time()
sendToDiscord(playerName .. " went on duty.")
end
end)
AddEventHandler('playerDropped', function(reason)
local src = source
if onDutyTimes[src] then
local xPlayer = QBCore.Functions.GetPlayer(src)
local playerName = xPlayer.PlayerData.charinfo.firstname .. " " .. xPlayer.PlayerData.charinfo.lastname
sendDutyTimeWebhook(src, playerName)
onDutyTimes[src] = nil
end
end)
function sendDutyTimeWebhook(src, playerName)
local endTime = os.time()
local timeOnDuty = os.difftime(endTime, onDutyTimes[src])
local hours = math.floor(timeOnDuty / 3600)
local minutes = math.floor((timeOnDuty % 3600) / 60)
local seconds = timeOnDuty % 60
sendToDiscord(playerName ..
" went off duty. Total time on duty: " .. hours .. "H " .. minutes .. "M " .. seconds .. "S")
end
2023-10-28 22:19:53 -05:00
RegisterNetEvent('QBCore:ToggleDuty')
AddEventHandler('QBCore:ToggleDuty', function()
local src = source
local xPlayer = QBCore.Functions.GetPlayer(src)
local playerName = xPlayer.PlayerData.charinfo.firstname .. " " .. xPlayer.PlayerData.charinfo.lastname
local metadata = xPlayer.PlayerData.metadata
if metadata and metadata.callsign then
playerName = playerName .. " (Callsign: " .. metadata.callsign .. ")"
end
if xPlayer.PlayerData.job and xPlayer.PlayerData.job.name == Config.PoliceJob then
if onDutyTimes[src] then
sendDutyTimeWebhook(src, playerName)
onDutyTimes[src] = nil
else
onDutyTimes[src] = os.time()
sendToDiscord(playerName .. " went on duty.")
end
end
end)
2023-10-28 21:27:53 -05:00
function sendToDiscord(message)
local webhook = Config.Webhook
if webhook == '' or webhook == 'CHANGEME' then
print('Please put webhook into editableserver.lua')
return
end
local connect = {
{
["color"] = 255,
2023-10-28 22:19:53 -05:00
["title"] = "Police Duty Log",
2023-10-28 21:27:53 -05:00
["description"] = message,
["footer"] = {
["icon_url"] = "https://media.discordapp.net/attachments/1077462714902917171/1077462755625418862/96Logo.png",
["text"] = "www.nemesisGD.com",
},
}
}
PerformHttpRequest(webhook, function(err, text, headers) end, 'POST',
json.encode({
username = 'Nemesis Gaming Development | Police Duty',
embeds = connect,
avatar_url = 'https://media.discordapp.net/attachments/1077462714902917171/1077462755625418862/96Logo.png'
}),
{ ['Content-Type'] = 'application/json' })
end