-- This module fixes the issue with uncached items after inspection. -- After an inspect request is sent, the recieved INSPECT_READY event doesn't mean that items are cached yet. -- This creates an issue where in most cases, not all items were available to Examiner for scanning. -- By creating a delay (currently 0.5 sec), we give extra time for WoW to precache these items, so they are ready for scanning by Examiner. local ex = Examiner; -- Module local mod = ex:CreateModule("DelayedScan",nil); -- Options mod:AddOption({ var = "delayedScanFix", default = true, label = "Delayed Gear Scan Fix", tip = "Causes a delayed gear scan of 0.5 seconds, potentially fixing items not showing up on the first inspect" }); -- Objects local frmTimer = CreateFrame("Frame"); -- Variables local DELAYED_AMOUNT = 0.5; -- Increase this if delay is not long enough to cache all items. Az: Perhaps dynamically get this value from a multiplical of latency in GetNetStats()? local applyDelay = false; local delayTimer; -------------------------------------------------------------------------------------------------------- -- Module Scripts -- -------------------------------------------------------------------------------------------------------- function mod:OnInspect(unit,guid) applyDelay = ex.cfg.delayedScanFix and not ex.isSelf; -- Do not apply delay if player is inspecting self end function mod:OnInspectReady(unit,guid) if (applyDelay) then applyDelay = false; delayTimer = 0; frmTimer:Show(); end end -------------------------------------------------------------------------------------------------------- -- Timer Frame -- -------------------------------------------------------------------------------------------------------- local function OnUpdate(self,elapsed) delayTimer = (delayTimer + elapsed); if (delayTimer >= DELAYED_AMOUNT) then self:Hide(); ex:InspectReady(ex.guid); end end frmTimer:SetScript("OnUpdate",OnUpdate); frmTimer:Hide();