1
0
Fork 0
forked from Simnation/Main
Main/resources/[standalone]/tgiann-core/client/functions/duty.lua
2025-07-09 19:41:05 +02:00

55 lines
2 KiB
Lua

local lang = langs[config.lang]
local esxDuty = nil
--- @return boolean @true if on duty, false if off duty
function tgiCore.IsOnDuty()
if config.framework == "esx" then
if config.esx_service then
if esxDuty == nil then
local p = promise.new()
tgiCore.core.TriggerServerCallback('esx_service:isInService', function(isInService)
p:resolve(isInService)
end, PlayerData.job.name)
esxDuty = Citizen.Await(p)
end
return esxDuty
else
return true -- If there is no service script, return true for default
end
elseif config.framework == "qb" then
return PlayerData.job.onduty
end
return nil
end
--- Toogle on/off duty
--- @return string @ dutyFull | onDuty | offDuty
function tgiCore.ToggleDuty()
local onDuty = tgiCore.IsOnDuty()
if onDuty == nil then return end
if config.framework == "esx" then
if config.esx_service then
if onDuty then
TriggerServerEvent('esx_service:disableService', PlayerData.job.name)
esxDuty = false
else
local p = promise.new()
tgiCore.core.TriggerServerCallback('esx_service:enableService', function(canTakeService, maxInService, inServiceCount)
esxDuty = canTakeService
if not canTakeService then
tgiCore.notif(lang.dutyFull, "error")
return p:resolve("dutyFull")
end
p:resolve("onDuty")
end, PlayerData.job.name)
return Citizen.Await(p)
end
else
tgiCore.DebugWarningLog("Not found any service/duty script for ESX! You can edit from 'client/functions/duty.lua'")
return "offDuty"
end
elseif config.framework == "qb" then
TriggerServerEvent('QBCore:ToggleDuty')
end
return onDuty and "offDuty" or "onDuty"
end