Something went wrong. Try again.
A World of Warcraft Experience Bar addon
worldofwarcraft wow addon midnight
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465local _, F = ...
-- 1. Event Handling (Replaces Trigger 2)F.Events:RegisterEvent("PLAYER_ENTERING_WORLD")F.Events:RegisterEvent("PLAYER_LEVEL_UP")F.Events:RegisterEvent("PLAYER_XP_UPDATE")F.Events:RegisterEvent("UPDATE_FACTION")F.Events:RegisterEvent("QUEST_LOG_UPDATE")F.Events:RegisterEvent("QUEST_WATCH_LIST_CHANGED")F.Events:RegisterEvent("QUEST_WATCH_UPDATE")F.Events:RegisterEvent("ADDON_LOADED")
F.Events:SetScript("OnEvent", function(self, event, ...) local arg1 = ...
if event == "ADDON_LOADED" and arg1 == "NixxnuxXPBar" then F.InitDB() F.State.session.startTime = time() F.State.session.lastXP = UnitXP("player") -- Hide Blizzard XP / Reputation bars if configured if F.UI and F.UI.HideBlizzardBars then F.UI.HideBlizzardBars() end end
if event == "PLAYER_ENTERING_WORLD" then F.State:UpdatePlayerXP() F.State:UpdateQuestXP() -- Hide Blizzard bars after entering world (in case something re-enabled them) if F.UI and F.UI.HideBlizzardBars then F.UI.HideBlizzardBars() end
elseif event == "PLAYER_XP_UPDATE" then local currentXP = UnitXP("player") local gained = currentXP - F.State.session.lastXP
-- Handle wrap around level up if gained < 0 then gained = F.State.maxXP - F.State.session.lastXP + currentXP end
F.State.session.gainedXP = F.State.session.gainedXP + gained F.State.session.lastXP = currentXP F.State:UpdatePlayerXP()
elseif event == "QUEST_LOG_UPDATE" or event == "QUEST_WATCH_LIST_CHANGED" or event == "QUEST_WATCH_UPDATE" then F.State:UpdateQuestXP() end
-- Force a UI Update immediately on event F.UpdateUI()end)
-- ticker that updates the UI each secondC_Timer.NewTicker(1, function() F.UpdateUI()end)
function F.UpdateUI() if F.UI and F.UI.Update then F.UI.Update() endend