Module:Infobox item: Difference between revisions

added ITEM_NAME_OVERRIDES
No edit summary
Line 32: Line 32:
-- Item name override mapping (old name -> new name)
-- Item name override mapping (old name -> new name)
local ITEM_NAME_OVERRIDES = {
local ITEM_NAME_OVERRIDES = {
     ["Backstabber"] = "Stalker",
     ["debuff remover"] = "Dispel Magic",
    ["backstabber"] = "Stalker",
}
}


Line 65: Line 66:


local function resolve_item_name(name)
local function resolve_item_name(name)
     -- Check if there's an override for this name
     -- Check if there's an override for this name (case-insensitive)
     return ITEM_NAME_OVERRIDES[name] or name
     local lowercase_name = name:lower()
    local override = ITEM_NAME_OVERRIDES[lowercase_name]
    if override then
        return override
    end
   
    -- If no override, try to find the item in data and return its proper Name
    -- First try direct key lookup
    if data[name] and not data[name].IsDisabled then
        return data[name].Name or name
    end
   
    -- Then try case-insensitive search by Name field
    local lowercase_search = name:lower()
    for _, v in pairs(data) do
        if v.Name and v.Name:lower() == lowercase_search and not v.IsDisabled then
            return v.Name
        end
    end
   
    -- Fallback to original name
    return name
end
end