From de1d05b2b25d8e02919c0c7c49af19a38f2520c5 Mon Sep 17 00:00:00 2001 From: NoM0Re <1629787+NoM0Re@users.noreply.github.com> Date: Tue, 7 Oct 2025 00:02:38 +0200 Subject: [PATCH] (refactor/encounter) refactor and fire DBM callbacks after load --- WeakAuras/GenericTrigger.lua | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) diff --git a/WeakAuras/GenericTrigger.lua b/WeakAuras/GenericTrigger.lua index 1fed085..8d5675b 100644 --- a/WeakAuras/GenericTrigger.lua +++ b/WeakAuras/GenericTrigger.lua @@ -3916,31 +3916,24 @@ Private.LibGroupTalentsWrapper.Register(function(unit) end) if WeakAuras.IsDBMRegistered() then + local encounterMapping = { + DBM_Pull = { "ENCOUNTER_START" }, + DBM_Kill = { "ENCOUNTER_END", 1 }, + DBM_Wipe = { "ENCOUNTER_END", 0 } + } + function Private.DBMEncounterEvents(event, mod, ...) - local encounterID, encounterName, difficultyID, groupSize = - 0, "", DBM:GetCurrentDifficulty(), DBM:GetGroupSize() + local encounterID = (type(mod) == "table" and mod.encounterId) or 0 + local encounterName = (type(mod) == "table" and mod.combatInfo and mod.combatInfo.name) or "" + local difficultyID, groupSize = DBM:GetCurrentDifficulty(), DBM:GetGroupSize() + local eventName, success = unpack(encounterMapping[event]) - if type(mod) == "table" then - encounterID = mod.encounterId or encounterID - encounterName = mod.combatInfo and mod.combatInfo.name or encounterName - end - - -- Fire DBM Callback Events too, because we have them anyway registered. + Private.ScanForLoads(nil, eventName, encounterID, encounterName, difficultyID, groupSize, success) WeakAuras.ScanEvents(event, mod, ...) - - if event == "DBM_Pull" then - -- ENCOUNTER_START: encounterID, encounterName, difficultyID, groupSize - Private.ScanForLoads(nil, "ENCOUNTER_START", encounterID, encounterName, difficultyID, groupSize) - WeakAuras.ScanEvents("ENCOUNTER_START", encounterID, encounterName, difficultyID, groupSize) - else - local success = (event == "DBM_Kill") and 1 or 0 - -- ENCOUNTER_END: encounterID, encounterName, difficultyID, groupSize, success - Private.ScanForLoads(nil, "ENCOUNTER_END", encounterID, encounterName, difficultyID, groupSize, success) - WeakAuras.ScanEvents("ENCOUNTER_END", encounterID, encounterName, difficultyID, groupSize, success) - end + WeakAuras.ScanEvents(eventName, encounterID, encounterName, difficultyID, groupSize, success) end - for _, event in ipairs({"DBM_Pull", "DBM_Kill", "DBM_Wipe"}) do + for event in pairs(encounterMapping) do DBM:RegisterCallback(event, Private.DBMEncounterEvents) end end