View Single Post
11-22-14, 03:06 PM   #11
Vrul
A Scalebane Royal Guard
 
Vrul's Avatar
AddOn Author - Click to view addons
Join Date: Nov 2007
Posts: 404
I'm using this:
Code:
local frame = CreateFrame('Frame')
frame:Hide()

frame:SetScript('OnEvent', function(self, event, ...)
	if event == 'GARRISON_MISSION_COMPLETE_RESPONSE' then
		local missionID, canComplete, succeeded = ...
		if canComplete and succeeded and C_Garrison.CanOpenMissionChest(missionID) then
			C_Garrison.MissionBonusRoll(missionID)
		end
	elseif event == 'GARRISON_MISSION_FINISHED' or event == 'GARRISON_MISSION_NPC_OPENED' then
		if not (GarrisonMissionFrame and GarrisonMissionFrame:IsShown()) then return end
		local missions = C_Garrison.GetCompleteMissions()
		for index = 1, #missions do
			C_Garrison.MarkMissionComplete(missions[index].missionID)
		end
		GarrisonMissionFrame.MissionTab.MissionList.CompleteDialog:Hide()
		GarrisonMissionFrameMissions.CompleteDialog:Hide()
		self:Show()
	else	-- event == 'ADDON_LOADED'
		if ... ~= 'Blizzard_GarrisonUI' then return end
		self:UnregisterEvent(event)
		GarrisonMissionFrame:UnregisterEvent('GARRISON_MISSION_FINISHED')
		GarrisonMissionFrame.MissionComplete:UnregisterEvent('GARRISON_MISSION_COMPLETE_RESPONSE')
	end
end)
frame:RegisterEvent('GARRISON_MISSION_COMPLETE_RESPONSE')
frame:RegisterEvent('GARRISON_MISSION_FINISHED')
frame:RegisterEvent('GARRISON_MISSION_NPC_OPENED')

frame:SetScript('OnUpdate', function(self)
	self:Hide()
	GarrisonMissionList_UpdateMissions()
end)

if GarrisonMissionFrame then
	GarrisonMissionFrame:UnregisterEvent('GARRISON_MISSION_FINISHED')
	GarrisonMissionFrame.MissionComplete:UnregisterEvent('GARRISON_MISSION_COMPLETE_RESPONSE')
else
	frame:RegisterEvent('ADDON_LOADED')
end
  Reply With Quote