JG Scripts Docs
DiscordSupportStore
  • Welcome!
  • Claim Purchase
  • FiveM Escrow Errors
  • Permissions Troubleshooting
  • Translations
  • 🛠️Mechanic
    • Introduction
    • Installation & Configuration
      • ox_inventory
      • qb-inventory
      • esx_inventory
      • Setup New Mechanic Location
    • Job Setup
      • ESX Framework Jobs
    • Inventory Items
    • Props
    • Tuning
    • Manual Transmissions & Smooth First Gear
    • Integrations
    • Commands, Events & Exports
      • Commands
      • Events
      • Exports
    • Changelog
      • v1.3.0
      • v1.2.0
      • v1.1.3
      • v1.1.2
      • v1.1.1
      • v1.1
      • v1.0.12
      • v1.0.11
      • v1.0.10
      • v1.0.9
      • v1.0.8
      • v1.0.7
      • v1.0.6
      • v1.0.5 - hotfix
      • v1.0.5
      • v1.0.4
      • v1.0.3
      • v1.0.2
      • v1.0.1
  • 🚘Dealerships
    • Introduction
    • Installation & Configuration
    • Advanced Configuration
    • Job Dealership Setup
    • License Check
    • Importing Vehicles
    • Dealership Locations
    • Employees
    • Custom Payment Options
    • Plate Format
    • Vehicle Images
    • Languages
    • Commands, Events & Exports
      • Commands
      • Events
    • Integrations
      • Quasar Garages
      • Pickle Mods Documents
      • okokContract
      • qb-vehiclesales
    • Changelog
      • v1.4.0
      • v1.3.1
      • v1.3.0
      • v1.2.6
      • v1.2.5
      • v1.2.4
      • v1.2.3
      • v1.2.2
      • v1.2.1
      • v1.2
      • v1.1.9
      • v1.1.8
      • v1.1.7
      • v1.1.6
      • v1.1.5
      • v1.1.4
      • v1.1.3
      • v1.1.2
      • v1.1.1
      • v1.1
      • v1.0.3
      • v1.0.2
      • v1.0.1
  • 🚗Advanced Garages v3
    • Introduction
    • Installation & Configuration
    • Migration from v1
    • Public, Private & Impound Garages
    • Job & Gang Garages
    • Transferring Vehicles
    • Vehicle Duplication Prevention
    • Vehicle Images
    • Languages
    • Commands, Events & Exports
      • Commands
      • Events
      • Exports
    • Misc
      • Spawn Vehicles with ServerSetter
      • Why are you not using CreateVehicleServerSetter by default?
    • Troubleshooting
      • Execution of native... SetDriftTyresEnabled error
      • ucrtbase.dll!strcmp crash
      • SQL error: foreign key constraint fails
    • Integrations
      • qb-phone
      • npwd
      • RoadPhone
      • Quasar Smartphone
      • Quasar Housing
      • okokDeleteVehicles
      • ps-housing
      • nolag_properties
      • Brazzers-FakePlate
      • Custom Fuel System
      • Custom Key System
    • Guides
      • ESX Guides
        • Vehicle Labels
      • QBCore Guides
        • Why isn't /admincar working?!
        • Liveries not saving
    • Changelog
      • v3.2.1
      • v3.2.0
      • v3.1.6
      • v3.1.5
      • v3.1.4
      • v3.1.3
      • v3.1.2
      • v3.1.1
      • v3.1.0
      • v3.0.8
      • v3.0.7
      • v3.0.6
      • v3.0.5
      • v3.0.4
      • v3.0.3
      • v3.0.2
      • v3.0.1
      • v3
      • v2.2.9
      • v2.2.8
      • v2.2.7
      • v2.2.6
      • v2.2.5
      • v2.2.4
      • v2.2.3
      • v.2.2.2
      • v2.2.1
      • v2.2.0
      • v2.1.2
      • v2.1.1
      • v2.1
      • v2.0.7
      • v2.0.6
      • v2.0.5
      • v2.0.4
      • v2.0.3
      • v2.0.2
      • v2.0.1
  • 📊Handling
    • Introduction
    • Installation
    • Exports
  • 🎮Pro Scoreboard
    • Introduction
    • Installation
    • Config & Customisation
  • Advanced Garages v1
    • QB Installation & Config
    • ESX Installation & Config
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Dealerships

License Check

Firstly you will need to add the following to each dealership in the config.lua

licenseCheck = false, -- false = no license required to open dealership
license = 'driver', -- this is the license name required 

You will need to replace the following function in config-cl.lua function ShowroomPreCheck(dealershipId)

function ShowroomPreCheck(dealershipId)
  local Player = Framework.Client.GetPlayerData()
  local licenseCheck = Config.DealershipLocations[dealershipId].licenseCheck
  local license = Player.metadata['licences'][Config.DealershipLocations[dealershipId].license]

  if licenseCheck then
    if not license then
      allowed = false

    elseif license  then
      print(license)
      allowed = true
    end
  else
    allowed = true
  end

  if not allowed then
    local msg = "You require a ".. Config.DealershipLocations[dealershipId].license
    Framework.Client.Notify(msg, "error", 1000 )
    return false
  end

  return true

end
function ShowroomPreCheck(dealershipId)
    local allowed = true
    local licenseCheck = Config.DealershipLocations[dealershipId].licenseCheck
    local licenseType = Config.DealershipLocations[dealershipId].license

    if licenseCheck and licenseType then
        local hasLicense = lib.callback.await('jg-dealerships:server:check-license', false, licenseType)

        if not hasLicense then
            allowed = false
        end
    end

    if not allowed then
        local msg = "You require a " .. licenseType .. " license to access this showroom."
        Framework.Client.Notify(msg, "error", 1000)
        return false
  end

    return true
end

-- the code block below is pasted inside the config-sv.lua

lib.callback.register('jg-dealerships:server:check-license', function(src, licenseType)
    local identifier = Framework.Server.GetPlayerIdentifier(src)

    local result = MySQL.scalar.await(
        'SELECT type FROM user_licenses WHERE type = ? AND owner = ?',
        {licenseType, identifier}
    )

    return result ~= nil
end)

Do you only want license check for individual dealerships? Then replace the config-cl function with the following

function ShowroomPreCheck(dealershipId)
  if dealershipId ~= "boat" then
      return true
  end

  local allowed = true
  local Player = Framework.Client.GetPlayerData()
  local licenseType = Config.DealershipLocations[dealershipId].license
  local licenseCheck = Config.DealershipLocations[dealershipId].licenseCheck
  local hasLicense = Player.metadata['licences'] and Player.metadata['licences'][licenseType]

  if licenseCheck then
      if not hasLicense then
          allowed = false
      end
  end

  if not allowed then
      local msg = "You require a " .. licenseType .. " license to access this showroom."
      Framework.Client.Notify(msg, "error", 1000)
      return false
  end

  return true
end
function ShowroomPreCheck(dealershipId)
  -- Only check licenses for "boat" dealership
  if dealershipId ~= "boat" then
      return true
  end

  local allowed = true
  local licenseCheck = Config.DealershipLocations[dealershipId].licenseCheck
  local licenseType = Config.DealershipLocations[dealershipId].license

  if licenseCheck and licenseType then
      local hasLicense = lib.callback.await('jg-dealerships:server:check-license', false, licenseType)

      if not hasLicense then
          allowed = false
      end
  end

    if not allowed then
        local msg = "You require a " .. licenseType .. " license to access this showroom."
        Framework.Client.Notify(msg, "error", 1000)
        return false
  end

  return true
end

-- the code block below is pasted inside the config-sv.lua

lib.callback.register('jg-dealerships:server:check-license', function(src, licenseType)
    local identifier = Framework.Server.GetPlayerIdentifier(src)

    local result = MySQL.scalar.await(
        'SELECT type FROM user_licenses WHERE type = ? AND owner = ?',
        {licenseType, identifier}
    )

    return result ~= nil
end)

Last updated 23 days ago

Was this helpful?

🚘