--COMBAT_LOG_EVENT_UNFILTERED PLAYER_REGEN_ENABLED PLAYER_REGEN_DISABLED DRUID_HOTS_REMOVE_HOT
function(e, ...)
    if not WeakAurasSaved.DruidHots then
        WeakAurasSaved.DruidHots = {
            ["Rejuvenation"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}},
            ["Regrowth"] = {["count"] = 0, ["duration"] = 12, ["timers"] = {}},
            ["Lifebloom"] = {["count"] = 0, ["duration"] = 15, ["timers"] = {}},
            ["Wild Growth"] = {["count"] = 0, ["duration"] = 7, ["timers"] = {}},
            ["Spring Blossoms"] = {["count"] = 0, ["duration"] = 6, ["timers"] = {}},
            ["Grove Tending"] = {["count"] = 0, ["duration"] = 9, ["timers"] = {}},
            ["Rejuvenation (Germination)"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}},
        }
    end
    if not WeakAurasSaved.DruidHots.ticker then WeakAurasSaved.DruidHots.ticker = C_Timer.NewTicker(0.5, function() WeakAuras.ScanEvents("UPDATE_HOTS") end) end
    if e == "DRUID_HOTS_REMOVE_HOT" then
        local name, id = ...
        --DevTools_Dump(WeakAurasSaved.DruidHots)
        if WeakAurasSaved.DruidHots[name].timers[id] then
            if WeakAurasSaved.DruidHots[name].timers[id] then WeakAurasSaved.DruidHots[name].timers[id]:Cancel() end
            WeakAurasSaved.DruidHots[name].timers[id] = nil
            WeakAurasSaved.DruidHots[name].count = WeakAurasSaved.DruidHots[name].count - 1
        end
        WeakAuras.ScanEvents("UPDATE_HOTS")
        --DevTools_Dump(WeakAurasSaved.DruidHots)
    elseif e == "COMBAT_LOG_EVENT_UNFILTERED" then
        local se = select(2, ...)
        local caster = select(5, ...)
        local spellname = select(13, ...)
        local target = select(10, ...)
        if se == "SPELL_AURA_APPLIED" then
            if caster and caster == UnitName("player") then
                if WeakAurasSaved.DruidHots[spellname] then
                    WeakAurasSaved.DruidHots[spellname].count = WeakAurasSaved.DruidHots[spellname].count + 1
                    WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count] = C_Timer.NewTimer(WeakAurasSaved.DruidHots[spellname].duration * 4, function() WeakAuras.ScanEvents("DRUID_HOTS_REMOVE_HOT", spellname, WeakAurasSaved.DruidHots[spellname].count) end)
                    --DevTools_Dump(WeakAurasSaved.DruidHots)
                    WeakAuras.ScanEvents("UPDATE_HOTS")
                end
            end
        elseif se == "SPELL_AURA_REMOVED" then
            if caster and caster == UnitName("player") then
                if WeakAurasSaved.DruidHots[spellname] then
                    if WeakAurasSaved.DruidHots[spellname].count > 0 then
                        WeakAurasSaved.DruidHots[spellname].count = WeakAurasSaved.DruidHots[spellname].count - 1
                        if WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count + 1] then WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count + 1]:Cancel(); WeakAurasSaved.DruidHots[spellname].timers[WeakAurasSaved.DruidHots[spellname].count + 1] = nil end
                        --DevTools_Dump(WeakAurasSaved.DruidHots)
                        WeakAuras.ScanEvents("UPDATE_HOTS")
                    end
                end
            end
        end
    elseif e == "PLAYER_REGEN_ENABLED" or e == "PLAYER_REGEN_DISABLED" then
        WeakAurasSaved.DruidHots = {
            ["Rejuvenation"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}},
            ["Regrowth"] = {["count"] = 0, ["duration"] = 12, ["timers"] = {}},
            ["Lifebloom"] = {["count"] = 0, ["duration"] = 15, ["timers"] = {}},
            ["Wild Growth"] = {["count"] = 0, ["duration"] = 7, ["timers"] = {}},
            ["Spring Blossoms"] = {["count"] = 0, ["duration"] = 6, ["timers"] = {}},
            ["Grove Tending"] = {["count"] = 0, ["duration"] = 9, ["timers"] = {}},
            ["Rejuvenation (Germination)"] = {["count"] = 0, ["duration"] = 18, ["timers"] = {}},
        }
        local instance = "party"
        if IsInRaid() then instance = "raid" end
        local index = 1
        --DevTools_Dump(UnitBuff("player", index, "PLAYER"))
        while UnitBuff("player", index, "PLAYER") do
            local name = UnitBuff("player", index, "PLAYER")
            if WeakAurasSaved.DruidHots[name] then
                WeakAurasSaved.DruidHots[name].count = WeakAurasSaved.DruidHots[name].count + 1
            end
            index = index + 1
            if index > 20 then break end
        end
        for i = 1, GetNumGroupMembers() do
            local index = 1
            --DevTools_Dump(UnitBuff(instance .. i, index, "PLAYER"))
            while UnitBuff(instance .. i, index, "PLAYER") do
                --DevTools_Dump(UnitBuff(instance .. i , index, "PLAYER"))
                local name = UnitBuff(instance .. i, index, "PLAYER")
                if WeakAurasSaved.DruidHots[name] then
                    WeakAurasSaved.DruidHots[name].count = WeakAurasSaved.DruidHots[name].count + 1
                end
                index = index + 1
                if index > 20 then break end
            end
        end
        --DevTools_Dump(WeakAurasSaved.DruidHots)
        WeakAuras.ScanEvents("UPDATE_HOTS")
    end
end

--DISPLAY
function()
    return WeakAurasSaved.DruidHots["Spring Blossoms"].count
end

--Mana bar
--DISPLAY
function()
    local mana = UnitPower("player", 0)
    if mana >= 1e3 and mana < 1e6 then
        mana = string.format("%.1fk", mana / 1e3)
    elseif mana >= 1e6 and mana < 1e9 then
        mana = string.format("%.1fM", mana / 1e6)
    end
    return mana
end

--INIT
if not WeakAurasSaved.DruidHots then
    WeakAurasSaved.DruidHots = {
        ["Rejuvenation"] = {["count"] = 0, ["duration"] = 18, ["timer"] = nil},
        ["Regrowth"] = {["count"] = 0, ["duration"] = 12, ["timer"] = nil},
        ["Lifebloom"] = {["count"] = 0, ["duration"] = 15, ["timer"] = nil},
        ["Wild Growth"] = {["count"] = 0, ["duration"] = 7, ["timer"] = nil},
        ["Spring Blossoms"] = {["count"] = 0, ["duration"] = 6, ["timer"] = nil},
        ["Grove Tending"] = {["count"] = 0, ["duration"] = 9, ["timer"] = nil},
        ["Rejuvenation (Germination)"] = {["count"] = 0, ["duration"] = 18, ["timer"] = nil},
    }
end