Módulo:TesteBossYawn

De Wiki Gla
Revisão de 13h27min de 8 de abril de 2026 por Yawn (discussão | contribs)
Ir para navegação Ir para pesquisar

A documentação para este módulo pode ser criada em Módulo:TesteBossYawn/doc

local p = {}

function p.loadBossData(bossName)
    local normalizedName = bossName:gsub("^%l", string.upper)
    
    -- Carrega usando ponto
    local success, bossData = pcall(function()
        return require("Module:TesteBossYawn." .. normalizedName)
    end)
    
    if not success then
        return nil
    end
    
    return bossData
end

function p.render(frame)

    local bossName = frame.args.boss
    if not bossName or bossName == "" then
        return "<b>Erro:</b> Parâmetro 'boss' não especificado."
    end
    
    local bossData = p.loadBossData(bossName)
    if not bossData then
        return "<b>Erro:</b> Boss '" .. bossName .. "' não encontrado."
    end
    
      -- Processa o componente BossSkills no servidor
    local normalizedName = bossName:gsub("^%l", string.upper)  -- "barbarossa" -> "Barbarossa"
    local skillsModuleName = "Boss." .. normalizedName          -- "Boss.Barbarossa"
    local skillsHTML = frame:expandTemplate{ 
        title = 'BossSkills', 
        args = {
            module = skillsModuleName,
            lang = 'pt'
        }
    }
    -- Adiciona ao JSON
    bossData.skillsHTML = skillsHTML
    
    local jsonData = mw.text.jsonEncode(bossData)
    jsonData = mw.text.encode(jsonData)

    return frame:preprocess([[
        <div class="boss-component" data-json="]] .. jsonData .. [[">
            {{#widget:TesteBossYawn}}
        </div>
    ]])
end

return p