Unlocked Files

Client Side

cl_framework.lua
Framework = {}

TriggerEvent("getCore", function(core)
    Framework.Core = core
end)

Framework.Callback = function(event, cb, args)
    Framework.Core.RpcCall(event, cb, args)
end

Framework.Notify = function(message, duration)
    Framework.Core.NotifyRightTip(message, duration)
end

Server Side

Framework = {}

TriggerEvent("getCore", function(core)
    Framework.Core = core
end)

Framework.Notify = function(source, message, duration)
    Framework.Core.NotifyRightTip(source, message, duration)
end

Framework.AddCallback = function(event, cb)
    Framework.Core.addRpcCallback(event, cb)
end

Framework.GetItemLabel = function(itemName, cb)
    exports["vorp_inventory"]:getItemDB(itemName, function(item)
        cb(item and item.label or nil)
    end)
end

Framework.GetItemById = function(source, itemId, cb)
    exports["vorp_inventory"]:getItemByMainId(source, itemId, function(item)
        if item then
            cb({
                name = item.name,
                label = item.label,
                count = item.count,
                metadata = item.metadata,
                id = item.mainid or item.id
            })
        else
            cb(nil)
        end
    end)
end

Framework.getItemByName = function(source, itemName, cb)
    exports["vorp_inventory"]:getItemByName(source, itemName, function(item)
        if cb then
            if item then
                cb({
                    name = item.name,
                    label = item.label,
                    count = item.count,
                    metadata = item.metadata,
                    id = item.mainid or item.id
                })
            else
                cb(nil)
            end
        end
    end)
end

Framework.SetItemMetadata = function(source, itemId, metadata)
    exports["vorp_inventory"]:setItemMetadata(source, itemId, metadata, nil)
end

Framework.RegisterItem = function(itemName, cb)
    exports["vorp_inventory"]:registerUsableItem(itemName, function(data)
        cb({
            source = data.source,
            itemId = data.item.mainid or data.item.id,
            metadata = data.item.metadata
        })
    end)
end

Framework.CloseInventory = function(source)
    TriggerClientEvent("vorp_inventory:CloseInv", source)
end

Framework.GetCharacterName = function(source, cb)
    local character = Framework.Core.getUser(source).getUsedCharacter
    cb(character.firstname .. ' ' .. character.lastname)
end

Framework.GetMoney = function(source, cb)
    local character = Framework.Core.getUser(source).getUsedCharacter
    cb(character.money)
end

Framework.RemoveMoney = function(source, amount)
    local character = Framework.Core.getUser(source).getUsedCharacter
    character.removeCurrency(0, amount)
end

Framework.AddMoney = function(source, amount)
    local character = Framework.Core.getUser(source).getUsedCharacter
    character.addCurrency(0, amount)
end

Framework.CanCarryItem = function(source, itemName, amount, cb)
    exports["vorp_inventory"]:canCarryItem(source, itemName, amount, function(canCarry)
        cb(canCarry)
    end)
end

Framework.AddItem = function(source, itemName, amount, cb)
    exports["vorp_inventory"]:addItem(source, itemName, amount or 1, {}, function(added)
        if cb then cb(added) end
    end)
end

Framework.RemoveItem = function(source, itemName, itemCount)
    -- Function must return true / false if item has been removed or not
    return exports["vorp_inventory"]:subItem(source, itemName, itemCount or 1)
end

Framework.GetInventoryItems = function(source, cb)
    exports["vorp_inventory"]:getUserInventoryItems(source, function(inventory)
        local items = {}

        for index, item in pairs(inventory) do
            items[index] = {
                name = item.name,
                count = item.count
            }
        end

        cb(items)
    end)
end

RegisterNetEvent("vorpinventory:serverDropItem", function(itemName, itemId, _, __)
    local _source = source
    ItemDropped(_source, itemName, itemId)
end)

Last updated

Was this helpful?