Config Server

local Framework = nil
if GetResourceState('es_extended') == 'started' then
    Framework = exports['es_extended']:getSharedObject()
elseif GetResourceState('qb-core') == 'started' then
    Framework = exports['qb-core']:GetCoreObject()
end

function FrameworkNotification(text, type, source)
    if Config.CustomNotify == true then
        -- Put here your code
    else
        if GetResourceState('ox_lib') == 'started' then
            TriggerClientEvent('ox_lib:notify', source, {title = 'Revel - VehicleShop', position = "center-left",description = text,type = type})
        elseif GetResourceState('qb-core') == 'started' then
            source.Functions.Notify(text, type)
        end
    end
end

function FrameworkGetPlayer(player)
    if Config.CustomFramework == true then
        -- Put here your code
    else
        if GetResourceState('es_extended') == 'started' then
            return Framework.GetPlayerFromId(player)
        elseif GetResourceState('qb-core') == 'started' then
            return Framework.Functions.GetPlayer(player)
        end
    end
end

function FrameworkGetMoney(player)
    if Config.CustomFramework == true then
        -- Put here your code
    else
        if GetResourceState('es_extended') == 'started' then
            return player.getAccount('bank').money
        elseif GetResourceState('qb-core') == 'started' then
            return player.PlayerData.money.bank
        end
    end
end

function FrameworkAddMoney(player, amount)
    if Config.CustomFramework == true then
        -- Put here your code
    else
        if GetResourceState('es_extended') == 'started' then
            player.addAccountMoney("bank", amount)
        elseif GetResourceState('qb-core') == 'started' then
           player.Functions.addMoney('bank', amount)
        end
    end
end

function FrameworkRemoveMoney(player, amount)
    if Config.CustomFramework == true then
        -- Put here your code
    else
        if GetResourceState('es_extended') == 'started' then
            player.removeAccountMoney("bank",amount)
        elseif GetResourceState('qb-core') == 'started' then
            player.Functions.removeMoney('bank', amount)
        end
    end
end

-- The "category" is essentially used by your garage script when there is more than one type of garage. 
-- This information is passed as a string so your garage script can display it correctly. 
-- The available types are "air", "boats", and "car". You can modify this with a small snippet if your garage system uses different category names.
-- check the example above

function InsertVehicle(player, model, plate, props, category)
    local vehicleData = json.encode(props)
    local hash = GetHashKey(model)

    if GetResourceState('es_extended') == 'started' then
        -- ESX Framework
        if GetResourceState('oxmysql') == 'started' then
            if GetResourceState('renzu_garage') == 'started' then
                exports.oxmysql:insert('INSERT INTO owned_vehicles (owner, plate, vehicle, type, garage, stored) VALUES (?, ?, ?, ?, ?, ?)',
                {player.identifier, plate, vehicleData, category, "legion", 0})

            elseif GetResourceState('esx_garage') == 'started' then
                exports.oxmysql:insert('INSERT INTO owned_vehicles (owner, plate, vehicle, type, job, stored, garage) VALUES (?, ?, ?, ?, ?, ?, ?)',
                {player.identifier, plate, vehicleData, category, false, 0, "default"})

            elseif GetResourceState('revel_player') == 'started' then
                exports.oxmysql:insert('INSERT INTO owned_vehicles (owner, plate, model, label, vehicle, type, garage, stored, favorite) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)',
                {player.identifier, plate, model, model, vehicleData, category, "out", 0, 0})

            elseif GetResourceState('loaf_garage') == 'started' then
                exports.oxmysql:insert('INSERT INTO loaf_garage_vehicles (identifier, plate, garage, vehicle, stored) VALUES (?, ?, ?, ?, ?)',
                {player.identifier, plate, "default", vehicleData, 0})

            else
                print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
            end

        elseif GetResourceState('mysql-async') == 'started' then
            if GetResourceState('renzu_garage') == 'started' or GetResourceState('esx_garage') == 'started' then
                MySQL.Async.execute('INSERT INTO owned_vehicles (owner, plate, vehicle, type, garage, stored) VALUES (?, ?, ?, ?, ?, ?)',
                {player.identifier, plate, vehicleData, category, "legion", 0})
            elseif GetResourceState('revel_player') == 'started' then
                MySQL.Async.execute('INSERT INTO owned_vehicles (owner, plate, model, label, vehicle, type, garage, stored, favorite) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)',
                {player.identifier, plate, model, model, vehicleData, category, "out", 0, 0})
            elseif GetResourceState('loaf_garage') == 'started' then
                MySQL.Async.execute('INSERT INTO loaf_garage_vehicles (identifier, plate, garage, vehicle, stored) VALUES (?, ?, ?, ?, ?)',
                {player.identifier, plate, "default", vehicleData, 0})
            else
                print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
            end
        end
    elseif GetResourceState('qb-core') == 'started' then
       -- QBCore Framework
        if GetResourceState('oxmysql') == 'started' then
            if GetResourceState('renzu_garage') == 'started' then
                exports.oxmysql:insert('INSERT INTO owned_vehicles (owner, plate, vehicle, type, garage, stored) VALUES (?, ?, ?, ?, ?, ?)', {player.PlayerData.citizenid, plate, vehicleData, category or "car", "default", 0})

            elseif GetResourceState('revel_player') == 'started' then
                exports.oxmysql:insert('INSERT INTO owned_vehicles (owner, plate, model, label, vehicle, type, garage, stored, favorite) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', {player.PlayerData.citizenid, plate, model, model, vehicleData, category or "car", "out", 0, 0})

            elseif GetResourceState('loaf_garage') == 'started' then
                exports.oxmysql:insert('INSERT INTO loaf_garage_vehicles (identifier, plate, garage, vehicle, stored) VALUES (?, ?, ?, ?, ?)', {player.PlayerData.citizenid, plate, "default", vehicleData, 0})

            elseif GetResourceState('qb-garages') == 'started' then
                exports.oxmysql:insert('INSERT INTO player_vehicles (license, citizenid, vehicle, hash, mods, plate, state) VALUES (?, ?, ?, ?, ?, ?, ?)', {player.PlayerData.license, player.PlayerData.citizenid, model, hash, vehicleData, plate, 0})
            else
                print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
            end

        elseif GetResourceState('mysql-async') == 'started' then
            if GetResourceState('renzu_garage') == 'started' then
                MySQL.Async.execute('INSERT INTO owned_vehicles (owner, plate, vehicle, type, garage, stored) VALUES (?, ?, ?, ?, ?, ?)', {player.PlayerData.citizenid, plate, vehicleData, category or "car", "default", 0})

            elseif GetResourceState('revel_player') == 'started' then
                MySQL.Async.execute('INSERT INTO owned_vehicles (owner, plate, model, label, vehicle, type, garage, stored, favorite) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', {player.PlayerData.citizenid, plate, model, model, vehicleData, category or "car", "out", 0, 0})

            elseif GetResourceState('loaf_garage') == 'started' then
                MySQL.Async.execute('INSERT INTO loaf_garage_vehicles (identifier, plate, garage, vehicle, stored) VALUES (?, ?, ?, ?, ?)', {player.PlayerData.citizenid, plate, "default", vehicleData, 0})

            elseif GetResourceState('qb-garages') == 'started' then
                MySQL.Async.execute('INSERT INTO player_vehicles (license, citizenid, vehicle, hash, mods, plate, state) VALUES (?, ?, ?, ?, ?, ?, ?)', {player.PlayerData.license, player.PlayerData.citizenid, model, hash, vehicleData, plate, 0})
            else
                print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
            end
        end
    end
end


function RemoveVehicle(player, plate)
    local removed = false

    if GetResourceState('es_extended') == 'started' then
        if GetResourceState('oxmysql') == 'started' then
            if GetResourceState('renzu_garage') == 'started' or GetResourceState('revel_player') == 'started' then
                exports.oxmysql:fetch('SELECT * FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.identifier, plate}, function(result)
                    if result and #result > 0 then
                        removed = true
                        exports.oxmysql:execute('DELETE FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.identifier, plate})
                    end
                end)
            elseif GetResourceState('loaf_garage') == 'started' then
                exports.oxmysql:fetch('SELECT * FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.identifier, plate}, function(result)
                    if result and #result > 0 then
                        removed = true
                        exports.oxmysql:execute('DELETE FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.identifier, plate})
                    end
                end)
            else
                print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
            end

        elseif GetResourceState('mysql-async') == 'started' then
            if GetResourceState('renzu_garage') == 'started' or GetResourceState('revel_player') == 'started' then
                MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.identifier, plate}, function(result)
                    if result and #result > 0 then
                        removed = true
                        MySQL.Async.execute('DELETE FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.identifier, plate})
                    end
                end)
            elseif GetResourceState('loaf_garage') == 'started' then
                MySQL.Async.fetchAll('SELECT * FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.identifier, plate}, function(result)
                    if result and #result > 0 then
                        removed = true
                        MySQL.Async.execute('DELETE FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.identifier, plate})
                    end
                end)
            else
                print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
            end
        end

    elseif GetResourceState('qb-core') == 'started' then
        if GetResourceState('oxmysql') == 'started' then
            if GetResourceState('renzu_garage') == 'started' or GetResourceState('revel_player') == 'started' then
                exports.oxmysql:fetch('SELECT * FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.PlayerData.citizenid, plate}, function(result)
                    if result and #result > 0 then
                        removed = true
                        exports.oxmysql:execute('DELETE FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.PlayerData.citizenid, plate})
                    end
                end)
            elseif GetResourceState('loaf_garage') == 'started' then
                exports.oxmysql:fetch('SELECT * FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.PlayerData.citizenid, plate}, function(result)
                    if result and #result > 0 then
                        removed = true
                        exports.oxmysql:execute('DELETE FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.PlayerData.citizenid, plate})
                    end
                end)
            elseif GetResourceState("qb-garages") == 'started' then
                exports.oxmysql:fetch('SELECT * FROM player_vehicles WHERE license = ? AND citizenid = ? AND plate = ?', {
                    player.PlayerData.license, player.PlayerData.citizenid, plate
                }, function(result)
                    if result and #result > 0 then
                        removed = true
                        exports.oxmysql:execute('DELETE FROM player_vehicles WHERE license = ? AND citizenid = ? AND plate = ?', {
                            player.PlayerData.license, player.PlayerData.citizenid, plate
                        })
                    end
                end)
            else
                print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
            end

        elseif GetResourceState('mysql-async') == 'started' then
            if GetResourceState('renzu_garage') == 'started' or GetResourceState('revel_player') == 'started' then
                MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.PlayerData.citizenid, plate}, function(result)
                    if result and #result > 0 then
                        removed = true
                        MySQL.Async.execute('DELETE FROM owned_vehicles WHERE owner = ? AND plate = ?', {player.PlayerData.citizenid, plate})
                    end
                end)
            elseif GetResourceState('loaf_garage') == 'started' then
                MySQL.Async.fetchAll('SELECT * FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.PlayerData.citizenid, plate}, function(result)
                    if result and #result > 0 then
                        removed = true
                        MySQL.Async.execute('DELETE FROM loaf_garage_vehicles WHERE identifier = ? AND plate = ?', {player.PlayerData.citizenid, plate})
                    end
                end)
            elseif GetResourceState("qb-garages") == 'started' then
                MySQL.Async.fetchAll('SELECT * FROM player_vehicles WHERE license = ? AND citizenid = ? AND plate = ?', {
                    player.PlayerData.license, player.PlayerData.citizenid, plate
                }, function(result)
                    if result and #result > 0 then
                        removed = true
                        MySQL.Async.execute('DELETE FROM player_vehicles WHERE license = ? AND citizenid = ? AND plate = ?', {
                            player.PlayerData.license, player.PlayerData.citizenid, plate
                        })
                    end
                end)
            else
                print("[GARAGE WARNING] Garage script not Found. Adapt manually at server/bridge.lua")
            end
        end
    end

    Citizen.Wait(250)

    return removed
end

Last updated