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) | 
