81 lines
3.5 KiB
Lua
81 lines
3.5 KiB
Lua
-- ██ ██ ███████ ██████ ██ ██ ██████ ██████ ██ ██
|
|
-- ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
|
|
-- ██ █ ██ █████ ██████ ███████ ██ ██ ██ ██ █████
|
|
-- ██ ███ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
|
|
-- ███ ███ ███████ ██████ ██ ██ ██████ ██████ ██ ██
|
|
|
|
Config.Webhook = 'CHANGEME'
|
|
---------------------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
|
|
local QBCore = exports['qb-core']:GetCoreObject()
|
|
local onDutyTimes = {}
|
|
|
|
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
|
|
|
|
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 or xPlayer.PlayerData.job and xPlayer.PlayerData.job.type == Config.PoliceJobType then
|
|
if onDutyTimes[src] then
|
|
sendDutyTimeWebhook(src, playerName)
|
|
onDutyTimes[src] = nil
|
|
else
|
|
onDutyTimes[src] = os.time()
|
|
sendToDiscord(playerName .. " went on duty.")
|
|
end
|
|
end
|
|
end)
|
|
|
|
|
|
function sendToDiscord(message)
|
|
local webhook = Config.Webhook
|
|
if webhook == '' or webhook == 'CHANGEME' then
|
|
print('Please put webhook into editableserver.lua')
|
|
return
|
|
end
|
|
local currentDateTime = os.date("%m-%d-%Y %H:%M:%S")
|
|
local connect = {
|
|
{
|
|
["color"] = 255,
|
|
["title"] = "Police Duty Log",
|
|
["description"] = message,
|
|
["footer"] = {
|
|
["icon_url"] = "https://media.discordapp.net/attachments/1077462714902917171/1077462755625418862/96Logo.png",
|
|
["text"] = "www.nemesisGD.com | " .. currentDateTime,
|
|
},
|
|
}
|
|
}
|
|
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
|