configMetadataAdvance.lua

--[[
-- for simpler metadata assignments you can use these exports
Displaymetadata: https://docs.tgiann.com/scripts/tgiann-inventory/exports/client#displaymetadata
DisplayItemMetadata: https://docs.tgiann.com/scripts/tgiann-inventory/exports/client#displayitemmetadata
]]

local metadataAdvance = {
    testitem = function()
        local html = [[
        <div class="item_info_container">
            <div class="item_info_row">
                <div class="item_info_row_left">Test Item Label:</div>
                <div class="item_info_row_right">%s</div>
            </div>
        </div>
        ]]
        return html:format("3x")
    end,

    testitem2 = function(metadata)
        local html = [[
        <div class="item_info_container">
            <div class="item_info_row">
                <div class="item_info_row_left">%s</div>
                <div class="item_info_row_right">%sx</div>
            </div>
        </div>
        ]]

        -- Uses string.format to insert metadata values into an HTML template.
        -- %s is replaced by the corresponding values like testValue and amount.
        return html:format(metadata.testValue, metadata.TestValueAmount)
    end,
}

---@param itemName string
---@param metadata table
local function getItemMetadata(itemName, metadata)
    if metadata == nil then return "" end
    local func = metadataAdvance[itemName]
    if func == nil then return "" end
    return func(metadata)
end

RegisterNUICallback("GetItemMetadata", function(data, cb)
    local itemName = data.itemName
    local metadata = data.metadata
    local html = getItemMetadata(itemName, metadata)

    SendNUIMessage({
        app = "app-inventory",
        method = "GetItemMetadataSuccess",
        data = html
    })

    cb("")
end)

exports("GetMetadataAdvanceList", function()
    local keys = {}
    for k, _ in pairs(metadataAdvance) do
        table.insert(keys, k)
    end
    return keys
end)

Last updated