QBOX

CreateThread(function()
    if Config.Framework ~= 'QBox' then return end
    
    QBCore = exports['qbx_core']:GetCoreObject()
    
    -- GetPlayer
    function GetPlayer(source)
        return QBCore.Functions.GetPlayer(source)
    end
    
    -- CreateUseableItem
    function CreateUseableItem(itemName, callback)
        QBCore.Functions.CreateUseableItem(itemName, callback)
    end
    
    -- GetPlayerJobName
    function GetPlayerJobName(source)
        local Player = GetPlayer(source)
        if Player and Player.PlayerData and Player.PlayerData.job and Player.PlayerData.job.name then
            return Player.PlayerData.job.name
        end
        return nil
    end
    
    -- GetPlayerJobGrade
    function GetPlayerJobGrade(source)
        local Player = GetPlayer(source)
        if Player and Player.PlayerData and Player.PlayerData.job and Player.PlayerData.job.grade and Player.PlayerData.job.grade.level then
            return Player.PlayerData.job.grade.level
        end
        return nil
    end
    
    -- AddItem
    function AddItem(source, itemName, amount, info)
        local Player = GetPlayer(source)
        if Player then
            if info then
                return Player.Functions.AddItem(itemName, amount, nil, info)
            else
                return Player.Functions.AddItem(itemName, amount)
            end
        end
        return false
    end
    
    -- RemoveItem
    function RemoveItem(source, itemName, amount, slot)
        local Player = GetPlayer(source)
        if Player then
            return Player.Functions.RemoveItem(itemName, amount, slot)
        end
        return false
    end
    
    -- GetItemByName
    function GetItemByName(source, itemName)
        local Player = GetPlayer(source)
        if Player then
            return Player.Functions.GetItemByName(itemName)
        end
        return nil
    end
    
    -- GetItemsByName (QBox specific - returns array)
    function GetItemsByName(source, itemName)
        local Player = GetPlayer(source)
        if Player then
            return Player.Functions.GetItemsByName(itemName)
        end
        return {}
    end
    
    -- GetPlayerData for metadata access
    function GetPlayerData(source)
        local Player = GetPlayer(source)
        if Player then
            return Player.PlayerData
        end
        return nil
    end
    
    -- AddMoney
    function AddMoney(source, moneyType, amount)
        local Player = GetPlayer(source)
        if Player then
            return Player.Functions.AddMoney(moneyType, amount)
        end
        return false
    end
    
    -- RemoveMoney
    function RemoveMoney(source, moneyType, amount)
        local Player = GetPlayer(source)
        if Player then
            return Player.Functions.RemoveMoney(moneyType, amount)
        end
        return false
    end

    -- AddJobMoney
    function AddJobMoney(accountName, amount)
        if not accountName or accountName == '' then
            return false
        end
        if exports['qb-management'] and exports['qb-management'].AddMoney then
            exports['qb-management']:AddMoney(accountName, amount)
            return true
        end
        print('qb-management not found for AddJobMoney: ' .. tostring(accountName))
        return false
    end
    
    -- GetSharedItem
    function GetSharedItem(itemName)
        if QBCore.Shared.Items and QBCore.Shared.Items[itemName] then
            return QBCore.Shared.Items[itemName]
        end
        return nil
    end
    
    -- Notify
    function Notify(source, message, theme, duration)
        TriggerClientEvent('qbx_lib:notify', source, {
            title = 'TrΓ©sor',
            description = message,
            type = theme or 'primary',
            duration = duration or 5000
        })
    end
    
    -- GetPlayerMoney
    function GetPlayerMoney(source, moneyType)
        local Player = GetPlayer(source)
        if Player and Player.PlayerData and Player.PlayerData.money and Player.PlayerData.money[moneyType] then
            return Player.PlayerData.money[moneyType]
        end
        return 0
    end
end)

Last updated