local _,ns = ...
local Autoloot = CreateFrame("Frame")
local antiSpamTime = 0
local antiDoubleClose = 0
local L = ns.L

local function slotDisponible(slotsNecesarios)
    local cantidad = 0
    for x=0,4 do
        local slots, type = C_Container.GetContainerNumFreeSlots(x)
        cantidad = cantidad + slots
        if type and type == 0 and cantidad >= slotsNecesarios then
            return true
        end
    end
    return false
end

Autoloot:SetScript("OnEvent", function (self,event,...)
    --print(event,...,GetNumLootItems())
    if event == "LOOT_READY" then
        if not IsModifiedClick("AUTOLOOTTOGGLE") and GetTime()-antiSpamTime>0.3 then
            antiSpamTime = GetTime()
            if slotDisponible(GetNumLootItems()) then
                for i=1,GetNumLootItems() do
                    --print(GetLootSlotInfo(i))
                    LootSlot(i)
                end
                CloseLoot()
            else
                --RaidNotice_AddMessage(RaidBossEmoteFrame, "Your message here!", ChatTypeInfo["RAID_WARNING"])
                --RaidNotice_AddMessage(RaidWarningFrame, "text", ChatTypeInfo["RAID_WARNING"])
                RaidNotice_AddMessage(RaidWarningFrame, L["BAGS ARE FULL"], ChatTypeInfo["SYSTEM"])
                --PlaySound(2229)
                PlaySound(417)
            end
        end
    elseif event == "LOOT_CLOSED" then
        if GetTime()-antiDoubleClose>0.2 and C_AddOns.IsAddOnLoaded('TradeSkillMaster') and TSMDestroyBtn ~= nil and TSMDestroyBtn:IsVisible() then
            -- Patch 11.1.0.60037: C_AddOns.IsAddOnLoaded cuando se añadió C_AddOns. no se probaron las 3 líneas siguientes
            TSMDestroyBtn:GetParent():GetParent():Hide()
            C_Timer.After(0, function() SlashCmdList['TSM']('destroy') end)
            antiDoubleClose = GetTime()
        end
    end
end)

local function enableAutoLoot( state )
    if state then
        --if not IsAddOnLoaded("FasterLoot") and not IsAddOnLoaded("FasterLooting") then
            --print("activado mi fasterloot")
            Autoloot:RegisterEvent("LOOT_READY")
            --Autoloot:RegisterEvent("LOOT_OPENED")
            Autoloot:RegisterEvent("LOOT_CLOSED")
            SetCVar("autoLootDefault", 1,  "AUTO_LOOT_DEFAULT_TEXT")
        --else
            --print("detectado otro fasterlooting")
        --end
    else
        Autoloot:UnregisterEvent("LOOT_READY")
        --Autoloot:UnregisterEvent("LOOT_OPENED")
        Autoloot:UnregisterEvent("LOOT_CLOSED")
        --SetCVar("autoLootDefault", 0,  "AUTO_LOOT_DEFAULT_TEXT")
    end
end
ns.enableAutoLoot = enableAutoLoot
