local ADDON_NAME, ADDON = ... ADDON.categoryManager = {} local categoryManager = ADDON.categoryManager categoryManager.__index = categoryManager categoryManager.filters = {} function DJBags_AddCategoryFilter(filter, name) assert(filter, 'Filter is required') if not name then table.insert(categoryManager.filters, filter) else categoryManager.filters[name] = filter end end function categoryManager:GetTitle(item) local bag = item:GetParent():GetID() local slot = item:GetID() if item.id then local isInSet, setName = GetContainerItemEquipmentSetInfo(bag, slot) if item.quality == LE_ITEM_QUALITY_POOR then return BAG_FILTER_JUNK end if isInSet then return setName end if bag >= 0 and bag <= NUM_BAG_SLOTS and C_NewItems.IsNewItem(bag, slot) then return NEW end for k, v in pairs(self.filters) do local output = v(bag, slot) if output then return output end end return item.class end return EMPTY end