Mercurial > wow > worldplan
diff ClassPlan.lua @ 8:802abb8a10ea
Fixed loss of mission progress data while changing zones by using `GARRISON_LANDINGPAGE_SHIPMENTS' as the trigger point for mission scoops.
* `MISSION_LIST_UPDATE' fires before all data is available, and if this is happens on a loading screen, then several landing page items may get snipped.
author | Nenue |
---|---|
date | Sun, 23 Oct 2016 07:19:53 -0400 |
parents | 48001b6a9496 |
children | a2b623043970 |
line wrap: on
line diff
--- a/ClassPlan.lua Sat Oct 22 15:36:25 2016 -0400 +++ b/ClassPlan.lua Sun Oct 23 07:19:53 2016 -0400 @@ -28,7 +28,7 @@ } ClassPlanMissionMixin = { templateName = 'ClassPlanMissionEntry', - events = {'GARRISON_MISSION_LIST_UPDATE', 'GARRISON_MISSION_STARTED', 'GARRISON_MISSION_FINISHED'},} + events = {'GARRISON_MISSION_LIST_UPDATE', 'GARRISON_MISSION_STARTED', 'GARRISON_MISSION_FINISHED', 'GARRISON_LANDINGPAGE_SHIPMENTS'},} ClassPlanShipmentMixin = { templateName = 'ClassPlanShipmentEntry', parent = false, @@ -56,19 +56,16 @@ if not self.profile then return end - self.items = C_Garrison.GetLandingPageItems(LE_GARRISON_TYPE_7_0) + local items = C_Garrison.GetLandingPageItems(LE_GARRISON_TYPE_7_0) + print(#items) wipe(self.profile.missions) - for index, data in ipairs(self.items) do + for index, data in ipairs(items) do print(' ',data.name, '|cFF00FF00'.. data.timeLeft .. '|r', date("%A %I:%m %p", data.missionEndTime)) tinsert(self.profile.missions, data) end print('items update pending') self.isStale = true - - if self:IsVisible() then - self:Refresh() - end end MissionsHandler.OnGetItem = function(data) @@ -131,7 +128,7 @@ if not creationTime then return end - print(shipmentType, name, shipmentCapacity, shipmentsReady, shipmentsTotal, creationTime, duration, timeleftString) + --print(shipmentType, name, shipmentCapacity, shipmentsReady, shipmentsTotal, creationTime, duration, timeleftString) tinsert(ShipmentsInfo, { shipmentType = shipmentType, @@ -203,14 +200,10 @@ end self.isStale = true - if self:IsVisible() then - self:Refresh() - end end function core:OnLoad () self:RegisterEvent('PLAYER_LOGIN') - self:RegisterEvent('PLAYER_ENTERING_WORLD') self:RegisterEvent('ADDON_LOADED') self:RegisterEvent('PLAYER_REGEN_ENABLED') self:RegisterEvent('PLAYER_REGEN_DISABLED') @@ -343,6 +336,11 @@ print('|cFF88FF00' .. tostring(ptype) .. '|r:GetPlayerData() --', numCalls) eventFunc(self, event) end + + + if self:IsVisible() then + self:Refresh() + end end end