From ea01c9ef158210044a266fa73403c477417b13ad Mon Sep 17 00:00:00 2001 From: DuvelCorp Date: Tue, 15 Sep 2026 07:34:39 +0200 Subject: [PATCH] Silence pet level/loyalty notifications right after loading --- api/core-level-tracking.lua | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/api/core-level-tracking.lua b/api/core-level-tracking.lua index d556c5d..810b410 100644 --- a/api/core-level-tracking.lua +++ b/api/core-level-tracking.lua @@ -4,6 +4,7 @@ local MTH_LT_Frame = nil local MTH_LT_PendingPetCheck = false +local MTH_LT_SuppressUntil = 0 local MTH_LT_HunterLines = { [1] = "You can now track beasts. Revolutionary: look for the things you intend to shoot.", @@ -293,6 +294,13 @@ local function MTH_LT_HandlePetState() store.pet = state return end + -- Just after a loading screen the pet's real level/loyalty can arrive a beat + -- late; record them as the baseline silently so we never announce progress + -- that actually happened in an earlier session (e.g. a fresh install). + if type(GetTime) == "function" and MTH_LT_SuppressUntil > 0 and GetTime() < MTH_LT_SuppressUntil then + store.pet = state + return + end if state.level > (tonumber(pet.level) or 0) then local line = MTH_LT_NextLine(store, "petLine", MTH_LT_PetLines) if MTH_LT_MessageEnabled("petLevelUp", true) then MTH:Print(state.name .. " reached level " .. state.level .. ". " .. line) end @@ -368,6 +376,7 @@ function MTH_LevelTracker_Initialize() if event == "PLAYER_ENTERING_WORLD" then local level = type(UnitLevel) == "function" and tonumber(UnitLevel("player")) or nil if level then MTH_LT_Store().hunterLevel = level end + if type(GetTime) == "function" then MTH_LT_SuppressUntil = GetTime() + 8 end MTH_LT_RequestPetCheck() elseif event == "PLAYER_LEVEL_UP" then MTH_LT_HandleHunterLevel(tonumber(arg1) or tonumber(UnitLevel("player")) or 1)