-- MxW (MxW Addon) -- By mikx -- https://git.mikx.xyz/mikx/MxW_Addon -- Licensed under the GNU General Public License 3.0 -- See included License file for more informations. local MX = LibStub("AceAddon-3.0"):GetAddon("MxW"); local L = LibStub("AceLocale-3.0"):GetLocale("MxW"); local numItems local iLink local value local by = 300 local LOOT_OPENED_Frame = CreateFrame("Frame") LOOT_OPENED_Frame:RegisterEvent("LOOT_OPENED") LOOT_OPENED_Frame:SetScript("OnEvent", function(self, event, ...) -- Check if loot slot qty is over 0 if GetNumLootItems() > 0 then -- save the loot slot qty to a variable numItems = GetNumLootItems() -- loop each loot slot for i = 1, numItems do -- get lootslotinfo to get item stack size lootIcon, lootName, lootQuantity, currencyID, lootQuality, locked, isQuestItem, questID, isActive = GetLootSlotInfo(i) -- get loot slot link to get iteminfo, we can't use item name due to API limitation iLink = GetLootSlotLink(i) -- get the iteminfo and continue only if the itemlink is not empty (EXEMPLE: money in a slot = empty) if (iLink ~= nil) then name, link, quality, iLevel, reqLevel, class, subclass, stack, equipSlot, texture, vendorPrice = GetItemInfo(iLink) -- get the item value using the link, return nil if the item has no value local itemId = MX:ToItemID(link); if (itemId ~= nil) then value = MX.TSM:GetItemValue(itemId, "DBMinBuyout"); end if (value ~= nil and value >= Farmer_Logic_MinAlert) then if (quality ~= nil and quality >= 1) then if (class == L["Alert_Class_Armor"] or class == L["Alert_Class_Weapon"] or class == L["Alert_Class_TradeGoods"] or class == L["Alert_Class_Consumable"] or class == L["Alert_Class_Misc"] or class == "Recipe") then MX:SendAlert(iLink,lootQuantity,value,by) by = by - 85 end end end end if (value ~= nil and quality ~= nil and quality >= 1) then Farmer_Money_LootSession = Farmer_Money_LootSession + value; MX:MainUIUpdate() value = nil iLink = nil end end by = 300 end end) function MX:SendAlert(link,lootQuantity,value,y) -- get the iteminfo using the slot itemlink name, link, quality, iLevel, reqLevel, class, subclass, stack, equipSlot, texture, vendorPrice = GetItemInfo(link) -- MINIMUM QUALITY SETTINGS ------ local eq = 2 -- equipable quality local mq = 1 -- mats quality local cq = 1 -- consumable quality local oq = 1 -- other quality local rq = 1 -- recipe quality ---------------------------------- -- if value is nil, the object is not BoE/not known by TSM & Looter is the player -- we use locales because the item class is localized by the client if (value ~= nil and Settings_Alert_Enabled) then if(class == L["Alert_Class_Armor"]) then if (value >= Farmer_Logic_MinAlert and quality >= eq) then MX:ShowAlert(link,lootQuantity,value,y); MX:ChatGuildLootMessage(link,value); end elseif(class == L["Alert_Class_Weapon"]) then if (value >= Farmer_Logic_MinAlert and quality >= eq) then MX:ShowAlert(link,lootQuantity,value,y); MX:ChatGuildLootMessage(link,value); end elseif(class == L["Alert_Class_TradeGoods"]) then if (value >= Farmer_Logic_MinAlert and quality >= mq) then MX:ShowAlert(link,lootQuantity,value,y); MX:ChatGuildLootMessage(link,value); end elseif(class == L["Alert_Class_Consumable"]) then if (value >= Farmer_Logic_MinAlert and quality >= cq) then MX:ShowAlert(link,lootQuantity,value,y); MX:ChatGuildLootMessage(link,value); end elseif(class == L["Alert_Class_Misc"]) then if (value >= Farmer_Logic_MinAlert and quality >= oq) then MX:ShowAlert(link,lootQuantity,value,y); MX:ChatGuildLootMessage(link,value); end elseif(class == "Recipe") then if (value >= Farmer_Logic_MinAlert and quality >= rq) then MX:ShowAlert(link,lootQuantity,value,y); MX:ChatGuildLootMessage(link,value); end end end end