--LOOT_READY MERCHANT_SHOW QUEST_POI_UPDATE QUEST_DETAIL QUEST_COMPLETE QUEST_GREETING QUEST_PROGRESS GOSSIP_SHOW SCRAPPING_MACHINE_SHOW MERCHANT_CLOSED EQUIP_BIND_CONFIRM function(e) local aura_env = aura_env if e == "LOOT_READY" then --Auto Loot local slot = 1 local lootinfo = GetLootInfo() for k, v in pairs(lootinfo) do if v.locked == false then local link = GetLootSlotLink(slot) local looted = false if not link then link = GetLootSlotLink(slot) end if aura_env.filter[1] == true and (v.item:match("%d+ Gold") or v.item:match("%d+ Silver") or v.item:match("%d+ Copper")) then LootSlot(slot) if aura_env.debug == true then print("loot 1 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[2] == true and link:match("Azerite") then LootSlot(slot) if aura_env.debug == true then print("loot 2 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[3] == true and v.item:match("War Resources") then LootSlot(slot) if aura_env.debug == true then print("loot 3 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[4] == true and v.item:match("Residuum") then LootSlot(slot) if aura_env.debug == true then print("loot 4 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[5] == true and v.item:match("Manapearl") then LootSlot(slot) if aura_env.debug == true then print("loot 5 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end end if link then local icon = v.texture local id = link:match("item:(%d+):") if not WeakAurasSaved.CustomTrash.IconDatabase[v.item] and v.item and icon then WeakAurasSaved.CustomTrash.IconDatabase[v.item] = icon print("Adding ", v.item, " to the icon database") end if not WeakAurasSaved.CustomTrash.IDDatabase[v.item] and v.item and id then WeakAurasSaved.CustomTrash.IDDatabase[v.item] = id print("Adding ", v.item, " to the id database") end local type = select(6, GetItemInfo(link)) or "" local subtype = select(7, GetItemInfo(link)) or "" local ilvl = select(4, GetItemInfo(link)) or 0 local equip = select(9, GetItemInfo(link)) if aura_env.filter[6] == true and (select(7, GetItemInfo(link)) or 0) == "Mount" then LootSlot(slot) if aura_env.debug == true then print("loot 6 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[7] == true and ilvl > aura_env.ilvlFilter then LootSlot(slot) if aura_env.debug == true then print("loot 7 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[8] == true and (select(7, GetItemInfo(link)) or 0) == "Herb" then LootSlot(slot) if aura_env.debug == true then print("loot 8 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[9] == true and (select(7, GetItemInfo(link)) or 0) == "Cooking" then LootSlot(slot) if aura_env.debug == true then print("loot 9 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[10] == true and (select(7, GetItemInfo(link)) or 0) == "Cloth" and type == "Tradeskill" then LootSlot(slot) if aura_env.debug == true then print("loot 10 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[11] == true and (select(7, GetItemInfo(link)) or 0) == "Metal & Stone" then LootSlot(slot) if aura_env.debug == true then print("loot 11 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[12] == true and (select(11, GetItemInfo(link)) or 0) > aura_env.goldFilter and v.quality == 0 then LootSlot(slot) if aura_env.debug == true then print("loot 12 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[13] == true and v.quality > 1 and v.quality < 4 and type ~= "Weapon" and type ~= "Armor" then LootSlot(slot) if aura_env.debug == true then print("loot 13 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[14] == true and v.isQuestItem == true then LootSlot(slot) if aura_env.debug == true then print("loot 14 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[15] == true and v.quality == 0 then LootSlot(slot) if aura_env.debug == true then print("loot 15 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[16] == true and aura_env.whitelist[v.item] then LootSlot(slot) if aura_env.debug == true then print("loot 16 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[17] == true and type == "Quest" and subtype == "Quest" then LootSlot(slot) if aura_env.debug == true then print("loot 17 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[21] == true and type == "Consumable" and subtype == "Other" then LootSlot(slot) if aura_env.debug == true then print("loot 21 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end else if type == "Weapon" or type == "Armor" then if aura_env.filter[18] == true and aura_env.skills[select(3, UnitClass("player"))][subtype] == 1 and v.quality > 2 then LootSlot(slot) if aura_env.debug == true then print("loot 18 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end elseif aura_env.filter[19] == true and (equip == "INVTYPE_FINGER" or equip == "INVTYPE_TRINKET" or equip == "INVTYPE_CLOAK" or equip == "INVTYPE_NECK") and v.quality > 2 then LootSlot(slot) if aura_env.debug == true then print("loot 19 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end end elseif aura_env.filter[20] == true and type == "Miscellaneous" then if subtype == "Mount" then LootSlot(slot) if aura_env.debug == true then print("loot 20 ", v.item, type, subtype) end if link then WeakAuras.ScanEvents("ADD_ITEM_SHOW", link, v.quantity) end end end end end slot = slot + 1 end end CloseLoot() elseif e == "EQUIP_BIND_CONFIRM" then StaticPopup1Button1:Click() elseif e == "SCRAPPING_MACHINE_SHOW" then for i = 0, 4 do for j = 1, GetContainerNumSlots(i) do local link = select(7, GetContainerItemInfo(i, j)) if link then local name = GetItemInfo(link) local rarity = select(3, GetItemInfo(link)) local ilvl = select(4, GetItemInfo(link)) or 0 local type = select(6, GetItemInfo(link)) local equip = select(9, GetItemInfo(link)) or "" local price = select(11, GetItemInfo(link)) if aura_env.sellWhitelist[name] ~= 1 then if name and rarity and ilvl and type and equip and price then if (type == "Armor" or type == "Weapon") and rarity <= 3 and aura_env.getequipID(equip) then UseContainerItem(i, j) elseif rarity > 3 and aura_env.getequipID(equip) then if equip ~= "INVTYPE_FINGER" then local eqID = aura_env.getequipID(equip) local elink = GetInventoryItemLink("player", eqID) local eilvl = select(4, GetItemInfo(elink)) or 0 if eilvl > ilvl + 5 then print("Scrapping " .. link .. "over " .. eilvl - ilvl .. " ilvl difference from " .. elink) UseContainerItem(i, j) end elseif equip == "INVTYPE_FINGER" then local eqID1, eqID2 = 11, 12 local elink1, elink2 = GetInventoryItemLink("player", eqID1), GetInventoryItemLink("player", eqID2) local eilvl1, eilvl2 = select(4, GetItemInfo(elink1)) or 0, select(4, GetItemInfo(elink2)) or 0 if eilvl1 > ilvl + 5 then print("Scrapping " .. link .. " over " .. eilvl1 - ilvl .. " ilvl difference from " .. elink1) UseContainerItem(i, j) elseif eilvl2 > ilvl + 5 then print("Scrapping " .. link .. " over " .. eilvl2 - ilvl .. " ilvl difference from " .. elink2) UseContainerItem(i, j) end end end end end end end end elseif e == "MERCHANT_SHOW" then --Sell grey and white wepaon if CanMerchantRepair() == true then RepairAllItems() end local i, j = 0, 1 for c = 0, 4 do for s = 1, GetContainerNumSlots(c) do local link = select(7, GetContainerItemInfo(c, s)) if link then local name = GetItemInfo(link) local rarity = select(3, GetItemInfo(link)) local ilvl = select(4, GetItemInfo(link)) or 0 local type = select(6, GetItemInfo(link)) local price = select(11, GetItemInfo(link)) if price and price > 0 then if aura_env.sellWhitelist[name] ~= 1 then if rarity == 0 then aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} elseif (type == "Armor" or type == "Weapon") and ilvl < 350 then aura_env.toSell[#aura_env.toSell + 1] = {["c"] = c, ["s"] = s} end end end end end end aura_env.ticker = C_Timer.NewTicker(0.15, function() if aura_env.toSell[1] then UseContainerItem(aura_env.toSell[1].c, aura_env.toSell[1].s) table.remove(aura_env.toSell, 1) else aura_env.ticker:Cancel() end if j >= GetContainerNumSlots(i) then i = i + 1 j = 1 end if i >= 4 then aura_env.ticker:Cancel() end end) elseif e == "MERCHANT_CLOSED" then if aura_env.ticker then aura_env.ticker:Cancel() end aura_env.toSell = {} elseif e == "QUEST_POI_UPDATE" then CloseGossip() elseif e == "QUEST_DETAIL" then AcceptQuest() elseif e == "QUEST_COMPLETE" then if GetNumQuestChoices() <= 1 then GetQuestReward(1) end elseif e == "GOSSIP_SHOW" then local quests = GetNumGossipAvailableQuests() local complquests = GetNumGossipActiveQuests() local opt = GetNumGossipOptions() if complquests > 0 and opt == 0 then for i = 1, complquests do SelectGossipActiveQuest(i) end end if quests > 0 and opt == 0 then SelectGossipAvailableQuest(1) end if opt == 1 and quests + complquests == 0 then SelectGossipOption(1) end elseif e == "QUEST_GREETING" then local quests = GetNumGossipAvailableQuests() local complquests = GetNumGossipActiveQuests() if complquests > 0 then for i = 1, complquests do SelectActiveQuest(1) end end if quests > 0 then SelectAvailableQuest(1) end elseif e == "QUEST_PROGRESS" then if IsQuestCompletable(i) then CompleteQuest() end end end --INIT aura_env.debug = true aura_env.filter = { [1] = true, --Gold [2] = true, --Azerite [3] = true, --War resources [4] = true, --Residuum [5] = true, --Manapearls [6] = true, --Mounts [7] = true, --High ilvl [8] = true, --Herbs [9] = false, --Cooking [10] = false, --Cloth [11] = true, --Metal & Stone [12] = true, --Gold filter greys [13] = true, -- >1 && <4 quality items, no gear [14] = true, --Quest items [15] = false, --All greys [16] = true, --Whitelist [17] = true, --Quest items (different filter) [18] = true, --Class aproperiate >2 items [19] = true, --Jewelery >2 quality [20] = true, --Additional mount filter [21] = true, --Tradeskill // Elemental } aura_env.ilvlFilter = 940 aura_env.goldFilter = 500000 aura_env.whitelist = { ["Pygmy Suckerfish"] = 1, ["Drakkari Offerings"] = 1, ["Deepcoral Pod"] = 1, ["Hardened Spring"] = 1, ["Machined Gear Assembly"] = 1, ["Tempered Plating"] = 1, ["Hefty Glimmershell"] = 1, ["Fresh Meat"] = 1, ["Wood"] = 1, ["Blood of Sargeras"] = 1, ["Primal Sargerite"] = 1, } aura_env.sellWhitelist = { ["Blacksmith Hammer"] = 1, ["Endless Tincture of Renewed Combat"] = 1, ["Mr. Munchykins"] = 1, ["Arclight Spanner"] = 1, ["Runeblade of Baron Rivendare"] = 1, } aura_env.toSell = {} aura_env.getequipID = function(equip) if equip == "INVTYPE_HEAD" then return 1 elseif equip == "INVTYPE_NECK" then return 2 elseif equip == "INVTYPE_SHOULDER" then return 3 elseif equip == "INVTYPE_BODY" then return 4 elseif equip == "INVTYPE_CHEST" or equip == "INVTYPE_ROBE" then return 5 elseif equip == "INVTYPE_WAIST" then return 6 elseif equip == "INVTYPE_LEGS" then return 7 elseif equip == "INVTYPE_FEET" then return 8 elseif equip == "INVTYPE_WRIST" then return 9 elseif equip == "INVTYPE_HAND" then return 10 elseif equip == "INVTYPE_CLOAK" then return 15 elseif equip == "INVTYPE_WEAPON" or equip == "INVTYPE_WEAPONMAINHAND" or equip == "INVTYPE_2HWEAPON" then return 16 elseif equip == "INVTYPE_SHIELD" then return 17 else return nil end end aura_env.skills = { --Warrior [1] = { --Armor Skills ["Cloth"] = 0, ["Leather"] = 0, ["Mail"] = 0, ["Plate"] = 1, ["Shields"] = 1, --Weapon Skills ["One-Handed Axes"] = 1, ["Two-Handed Axes"] = 1, ["Bows"] = 1, ["Guns"] = 1, ["One-Handed Maces"] = 1, ["Two-Handed Maces"] = 1, ["Polearms"] = 1, ["One-Handed Swords"] = 1, ["Two-Handed Swords"] = 1, ["Warglaives"] = 1, ["Staves"] = 1, ["Fist Weapons"] = 1, ["Daggers"] = 1, ["Crossbows"] = 1, ["Wands"] = 0, }, --Paladin [2] = { --Armor Skills ["Cloth"] = 0, ["Leather"] = 0, ["Mail"] = 0, ["Plate"] = 1, ["Shields"] = 1, --Weapon Skills ["One-Handed Axes"] = 1, ["Two-Handed Axes"] = 1, ["Bows"] = 0, ["Guns"] = 0, ["One-Handed Maces"] = 1, ["Two-Handed Maces"] = 1, ["Polearms"] = 1, ["One-Handed Swords"] = 1, ["Two-Handed Swords"] = 1, ["Warglaives"] = 0, ["Staves"] = 0, ["Fist Weapons"] = 0, ["Daggers"] = 0, ["Crossbows"] = 0, ["Wands"] = 0, }, --Hunter [3] = { --Armor Skills ["Cloth"] = 0, ["Leather"] = 0, ["Mail"] = 1, ["Plate"] = 0, ["Shields"] = 0, --Weapon Skills ["One-Handed Axes"] = 1, ["Two-Handed Axes"] = 1, ["Bows"] = 1, ["Guns"] = 1, ["One-Handed Maces"] = 0, ["Two-Handed Maces"] = 0, ["Polearms"] = 1, ["One-Handed Swords"] = 1, ["Two-Handed Swords"] = 1, ["Warglaives"] = 0, ["Staves"] = 1, ["Fist Weapons"] = 1, ["Daggers"] = 1, ["Crossbows"] = 1, ["Wands"] = 0, }, --Rogue [4] = { --Armor Skills ["Cloth"] = 0, ["Leather"] = 1, ["Mail"] = 0, ["Plate"] = 0, ["Shields"] = 0, --Weapon Skills ["One-Handed Axes"] = 1, ["Two-Handed Axes"] = 0, ["Bows"] = 0, ["Guns"] = 0, ["One-Handed Maces"] = 1, ["Two-Handed Maces"] = 0, ["Polearms"] = 0, ["One-Handed Swords"] = 1, ["Two-Handed Swords"] = 0, ["Warglaives"] = 0, ["Staves"] = 0, ["Fist Weapons"] = 1, ["Daggers"] = 1, ["Crossbows"] = 0, ["Wands"] = 0, }, --Priest [5] = { --Armor Skills ["Cloth"] = 1, ["Leather"] = 0, ["Mail"] = 0, ["Plate"] = 0, ["Shields"] = 0, --Weapon Skills ["One-Handed Axes"] = 0, ["Two-Handed Axes"] = 0, ["Bows"] = 0, ["Guns"] = 0, ["One-Handed Maces"] = 1, ["Two-Handed Maces"] = 0, ["Polearms"] = 0, ["One-Handed Swords"] = 0, ["Two-Handed Swords"] = 0, ["Warglaives"] = 0, ["Staves"] = 1, ["Fist Weapons"] = 0, ["Daggers"] = 1, ["Crossbows"] = 0, ["Wands"] = 1, }, --Death Knight [6] = { --Armor Skills ["Cloth"] = 0, ["Leather"] = 0, ["Mail"] = 0, ["Plate"] = 1, ["Shields"] = 0, --Weapon Skills ["One-Handed Axes"] = 1, ["Two-Handed Axes"] = 1, ["Bows"] = 0, ["Guns"] = 0, ["One-Handed Maces"] = 1, ["Two-Handed Maces"] = 1, ["Polearms"] = 1, ["One-Handed Swords"] = 1, ["Two-Handed Swords"] = 1, ["Warglaives"] = 0, ["Staves"] = 0, ["Fist Weapons"] = 0, ["Daggers"] = 0, ["Crossbows"] = 0, ["Wands"] = 0, }, --Shaman [7] = { --Armor Skills ["Cloth"] = 0, ["Leather"] = 0, ["Mail"] = 1, ["Plate"] = 0, ["Shields"] = 1, --Weapon Skills ["One-Handed Axes"] = 1, ["Two-Handed Axes"] = 0, ["Bows"] = 0, ["Guns"] = 0, ["One-Handed Maces"] = 1, ["Two-Handed Maces"] = 0, ["Polearms"] = 0, ["One-Handed Swords"] = 0, ["Two-Handed Swords"] = 0, ["Warglaives"] = 0, ["Staves"] = 1, ["Fist Weapons"] = 1, ["Daggers"] = 1, ["Crossbows"] = 0, ["Wands"] = 0, }, --Mage [8] = { --Armor Skills ["Cloth"] = 1, ["Leather"] = 0, ["Mail"] = 0, ["Plate"] = 0, ["Shields"] = 0, --Weapon Skills ["One-Handed Axes"] = 0, ["Two-Handed Axes"] = 0, ["Bows"] = 0, ["Guns"] = 0, ["One-Handed Maces"] = 0, ["Two-Handed Maces"] = 0, ["Polearms"] = 0, ["One-Handed Swords"] = 1, ["Two-Handed Swords"] = 0, ["Warglaives"] = 0, ["Staves"] = 1, ["Fist Weapons"] = 0, ["Daggers"] = 1, ["Crossbows"] = 0, ["Wands"] = 1, }, --Warlock [9] = { --Armor Skills ["Cloth"] = 1, ["Leather"] = 0, ["Mail"] = 0, ["Plate"] = 0, ["Shields"] = 0, --Weapon Skills ["One-Handed Axes"] = 0, ["Two-Handed Axes"] = 0, ["Bows"] = 0, ["Guns"] = 0, ["One-Handed Maces"] = 0, ["Two-Handed Maces"] = 0, ["Polearms"] = 0, ["One-Handed Swords"] = 1, ["Two-Handed Swords"] = 0, ["Warglaives"] = 0, ["Staves"] = 1, ["Fist Weapons"] = 0, ["Daggers"] = 1, ["Crossbows"] = 0, ["Wands"] = 1, }, --Monk [10] = { --Armor Skills ["Cloth"] = 0, ["Leather"] = 1, ["Mail"] = 0, ["Plate"] = 1, ["Shields"] = 1, --Weapon Skills ["One-Handed Axes"] = 1, ["Two-Handed Axes"] = 0, ["Bows"] = 0, ["Guns"] = 0, ["One-Handed Maces"] = 1, ["Two-Handed Maces"] = 0, ["Polearms"] = 1, ["One-Handed Swords"] = 1, ["Two-Handed Swords"] = 0, ["Warglaives"] = 0, ["Staves"] = 1, ["Fist Weapons"] = 1, ["Daggers"] = 0, ["Crossbows"] = 0, ["Wands"] = 0, }, --Druid [11] = { --Armor Skills ["Cloth"] = 0, ["Leather"] = 1, ["Mail"] = 0, ["Plate"] = 0, ["Shields"] = 0, --Weapon Skills ["One-Handed Axes"] = 0, ["Two-Handed Axes"] = 0, ["Bows"] = 0, ["Guns"] = 0, ["One-Handed Maces"] = 1, ["Two-Handed Maces"] = 0, ["Polearms"] = 1, ["One-Handed Swords"] = 0, ["Two-Handed Swords"] = 0, ["Warglaives"] = 0, ["Staves"] = 1, ["Fist Weapons"] = 1, ["Daggers"] = 1, ["Crossbows"] = 0, ["Wands"] = 0, }, --Demon Hunter [12] = { --Armor Skills ["Cloth"] = 0, ["Leather"] = 1, ["Mail"] = 0, ["Plate"] = 0, ["Shields"] = 0, --Weapon Skills ["One-Handed Axes"] = 1, ["Two-Handed Axes"] = 0, ["Bows"] = 0, ["Guns"] = 0, ["One-Handed Maces"] = 0, ["Two-Handed Maces"] = 0, ["Polearms"] = 0, ["One-Handed Swords"] = 1, ["Two-Handed Swords"] = 0, ["Warglaives"] = 1, ["Staves"] = 0, ["Fist Weapons"] = 1, ["Daggers"] = 0, ["Crossbows"] = 0, ["Wands"] = 0, }, }