forked from Simnation/Main
55 lines
2 KiB
Lua
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
|