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)