lua has no problem with very large tables, just make an itemid to setid lookup table.
Lua Code:
local setName = {
[1] = { name = "Mystic's Regalia (Recolor)", items = {14090, 26008, 14094}, },
-- [2......1778]
[1779] = { name = "Imperial Plate", items = {31436, 30002, 12424, 12425, 12422, 12427, 12429}, },
}
-- make lookup table, ideally this would be pre-made
local itemSet = {};
for i,set in pairs(setName) do
for j, id in pairs(set['items']) do
itemSet[id] = i;
end
end
function addline_gametip()
local itemName,itemLink = GameTooltip:GetItem();
if not itemLink then return end
local itemId = itemLink:match('item:(%d+)');
local setIndex = itemSet[tonumber(itemId)];
if setIndex and setName[setIndex] then
GameTooltip:AddLine("Transmog Set: " .. setName[setIndex]['name']);
end
end
GameTooltip:HookScript("OnTooltipSetItem", addline_gametip);