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
 | 
