62 lines
		
	
	
		
			No EOL
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			No EOL
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
Queue = {}
 | 
						|
Queue.Ready = false
 | 
						|
Queue.Exports = nil
 | 
						|
Queue.ReadyCbs = {}
 | 
						|
Queue.CurResource = GetCurrentResourceName()
 | 
						|
 | 
						|
if Queue.CurResource == "connectqueue" then return end
 | 
						|
 | 
						|
function Queue.OnReady(cb)
 | 
						|
    if not cb then return end
 | 
						|
    if Queue.IsReady() then cb() return end
 | 
						|
    table.insert(Queue.ReadyCbs, cb)
 | 
						|
end
 | 
						|
 | 
						|
function Queue.OnJoin(cb)
 | 
						|
    if not cb then return end
 | 
						|
    Queue.Exports:OnJoin(cb, Queue.CurResource)
 | 
						|
end
 | 
						|
 | 
						|
function Queue.AddPriority(id, power, temp)
 | 
						|
    if not Queue.IsReady() then return end
 | 
						|
    Queue.Exports:AddPriority(id, power, temp)
 | 
						|
end
 | 
						|
 | 
						|
function Queue.RemovePriority(id)
 | 
						|
    if not Queue.IsReady() then return end
 | 
						|
    Queue.Exports:RemovePriority(id)
 | 
						|
end
 | 
						|
 | 
						|
function Queue.IsReady()
 | 
						|
    return Queue.Ready
 | 
						|
end
 | 
						|
 | 
						|
function Queue.LoadExports()
 | 
						|
    Queue.Exports = exports.connectqueue:GetQueueExports()
 | 
						|
    Queue.Ready = true
 | 
						|
    Queue.ReadyCallbacks()
 | 
						|
end
 | 
						|
 | 
						|
function Queue.ReadyCallbacks()
 | 
						|
    if not Queue.IsReady() then return end
 | 
						|
    for _, cb in ipairs(Queue.ReadyCbs) do
 | 
						|
        cb()
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
AddEventHandler("onResourceStart", function(resource)
 | 
						|
    if resource == "connectqueue" then
 | 
						|
        while GetResourceState(resource) ~= "started" do Citizen.Wait(0) end
 | 
						|
        Citizen.Wait(1)
 | 
						|
        Queue.LoadExports()
 | 
						|
    end
 | 
						|
end)
 | 
						|
 | 
						|
AddEventHandler("onResourceStop", function(resource)
 | 
						|
    if resource == "connectqueue" then
 | 
						|
        Queue.Ready = false
 | 
						|
        Queue.Exports = nil
 | 
						|
    end
 | 
						|
end)
 | 
						|
 | 
						|
SetTimeout(1, function() Queue.LoadExports() end) |