loadfile("load-all-item-info.lua")() local itemText = {} for itemNum, itemInfo in pairs(item_info) do if itemInfo[1] then local itemName = itemInfo[1].left itemText[itemName] = itemText[itemName] or {} for i = 2, #(itemInfo) do local text = itemInfo[i].left itemText[itemName][text] = itemText[itemName][text] or {} itemText[itemName][text][itemNum] = true end end end local invalidItems = {} for itemName, text in pairs(itemText) do local shouldCompare = false for line, itemLinks in pairs(text) do if line:find("Matches ") and line:find(" Socket") then shouldCompare = true break end end if shouldCompare then local compareText for line, itemLinks in pairs(text) do if line ~= " " then compareText = line break end end for line, itemLinks in pairs(text) do if line ~= " " then if #(itemLinks) == #(text[compareText]) then for link in pairs(itemLinks) do if not text[compareText][link] then invalidItems[itemName] = text break end end for link in pairs(text[compareText]) do if not itemLinks[link] then invalidItems[itemName] = text break end end else invalidItems[itemName] = text end end end end end loadfile("sort.lua")() io.output("inconsistent-gems.lua") sort(invalidItems, "invalidItems") io.close()