AdvancedGarage Server
403 lines
ESX = nil
ESX = nil
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
-- Make sure all Vehicles are Stored on restart
-- Make sure all Vehicles are Stored on restart
MySQL.ready(function()
MySQL.ready(function()
ParkVehicles()
ParkVehicles()
end)
end)
function ParkVehicles()
function ParkVehicles()
MySQL.Async.execute('UPDATE owned_vehicles SET `stored` = true WHERE `stored` = @stored', {
MySQL.Async.execute('UPDATE owned_vehicles SET `stored` = true WHERE `stored` = @stored', {
['@stored'] = false
['@stored'] = false
}, function(rowsChanged)
}, function(rowsChanged)
if rowsChanged > 0 then
if rowsChanged > 0 then
print(('esx_advancedgarage: %s vehicle(s) have been stored!'):format(rowsChanged))
print(('esx_advancedgarage: %s vehicle(s) have been stored!'):format(rowsChanged))
end
end
end)
end)
end
end
-- Get Owned Properties
-- Get Owned Properties
ESX.RegisterServerCallback('esx_advancedgarage:getOwnedProperties', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:getOwnedProperties', function(source, cb)
local _source = source
local _source = source
local xPlayer = ESX.GetPlayerFromId(_source)
local xPlayer = ESX.GetPlayerFromId(_source)
local properties = {}
local properties = {}
MySQL.Async.fetchAll('SELECT * FROM owned_properties WHERE owner = @owner', {
MySQL.Async.fetchAll('SELECT * FROM owned_properties WHERE owner = @owner', {
['@owner'] = xPlayer.getIdentifier()
['@owner'] = xPlayer.getIdentifier()
}, function(data)
}, function(data)
for _,v in pairs(data) do
for _,v in pairs(data) do
table.insert(properties, v.name)
table.insert(properties, v.name)
end
end
cb(properties)
cb(properties)
end)
end)
end)
end)
-- Fetch Owned Aircrafts
-- Fetch Owned Aircrafts
ESX.RegisterServerCallback('esx_advancedgarage:getOwnedAircrafts', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:getOwnedAircrafts', function(source, cb)
local ownedAircrafts = {}
local ownedAircrafts = {}
if Config.DontShowPoundCarsInGarage == true then
if Config.DontShowPoundCarsInGarage == true then
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job AND `stored` = @stored', {
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job AND `stored` = @stored', {
['@owner'] = GetPlayerIdentifiers(source)[1],
['@owner'] = GetPlayerIdentifiers(source)[1],
['@Type'] = 'aircraft',
['@Type'] = 'aircraft',
['@job'] = '',
['@job'] = '',
['@stored'] = true
['@stored'] = true
}, function(data)
}, function(data)
for _,v in pairs(data) do
for _,v in pairs(data) do
local vehicle = json.decode(v.vehicle)
local vehicle = json.decode(v.vehicle)
table.insert(ownedAircrafts, {vehicle = vehicle, stored = v.stored, plate = v.plate})
table.insert(ownedAircrafts, {vehicle = vehicle, stored = v.stored, plate = v.plate})
end
end
cb(ownedAircrafts)
cb(ownedAircrafts)
end)
end)
else
else
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job', {
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job', {
['@owner'] = GetPlayerIdentifiers(source)[1],
['@owner'] = GetPlayerIdentifiers(source)[1],
['@Type'] = 'aircraft',
['@Type'] = 'aircraft',
['@job'] = ''
['@job'] = ''
}, function(data)
}, function(data)
for _,v in pairs(data) do
for _,v in pairs(data) do
local vehicle = json.decode(v.vehicle)
local vehicle = json.decode(v.vehicle)
table.insert(ownedAircrafts, {vehicle = vehicle, stored = v.stored, plate = v.plate})
table.insert(ownedAircrafts, {vehicle = vehicle, stored = v.stored, plate = v.plate})
end
end
cb(ownedAircrafts)
cb(ownedAircrafts)
end)
end)
end
end
end)
end)
-- Fetch Owned Boats
-- Fetch Owned Boats
ESX.RegisterServerCallback('esx_advancedgarage:getOwnedBoats', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:getOwnedBoats', function(source, cb)
local ownedBoats = {}
local ownedBoats = {}
if Config.DontShowPoundCarsInGarage == true then
if Config.DontShowPoundCarsInGarage == true then
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job AND `stored` = @stored', {
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job AND `stored` = @stored', {
['@owner'] = GetPlayerIdentifiers(source)[1],
['@owner'] = GetPlayerIdentifiers(source)[1],
['@Type'] = 'boat',
['@Type'] = 'boat',
['@job'] = '',
['@job'] = '',
['@stored'] = true
['@stored'] = true
}, function(data)
}, function(data)
for _,v in pairs(data) do
for _,v in pairs(data) do
local vehicle = json.decode(v.vehicle)
local vehicle = json.decode(v.vehicle)
table.insert(ownedBoats, {vehicle = vehicle, stored = v.stored, plate = v.plate})
table.insert(ownedBoats, {vehicle = vehicle, stored = v.stored, plate = v.plate})
end
end
cb(ownedBoats)
cb(ownedBoats)
end)
end)
else
else
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job', {
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job', {
['@owner'] = GetPlayerIdentifiers(source)[1],
['@owner'] = GetPlayerIdentifiers(source)[1],
['@Type'] = 'boat',
['@Type'] = 'boat',
['@job'] = ''
['@job'] = ''
}, function(data)
}, function(data)
for _,v in pairs(data) do
for _,v in pairs(data) do
local vehicle = json.decode(v.vehicle)
local vehicle = json.decode(v.vehicle)
table.insert(ownedBoats, {vehicle = vehicle, stored = v.stored, plate = v.plate})
table.insert(ownedBoats, {vehicle = vehicle, stored = v.stored, plate = v.plate})
end
end
cb(ownedBoats)
cb(ownedBoats)
end)
end)
end
end
end)
end)
-- Fetch Owned Cars
-- Fetch Owned Cars
ESX.RegisterServerCallback('esx_advancedgarage:getOwnedCars', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:getOwnedCars', function(source, cb)
local ownedCars = {}
local ownedCars = {}
if Config.DontShowPoundCarsInGarage == true then
if Config.DontShowPoundCarsInGarage == true then
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job AND `stored` = @stored', {
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job AND `stored` = @stored', {
['@owner'] = GetPlayerIdentifiers(source)[1],
['@owner'] = GetPlayerIdentifiers(source)[1],
['@Type'] = 'car',
['@Type'] = 'car',
['@job'] = '',
['@job'] = '',
['@stored'] = true
['@stored'] = true
}, function(data)
}, function(data)
for _,v in pairs(data) do
for _,v in pairs(data) do
local vehicle = json.decode(v.vehicle)
local vehicle = json.decode(v.vehicle)
table.insert(ownedCars, {vehicle = vehicle, stored = v.stored, plate = v.plate})
table.insert(ownedCars, {vehicle = vehicle, stored = v.stored, plate = v.plate})
end
end
cb(ownedCars)
cb(ownedCars)
end)
end)
else
else
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job', {
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job', {
['@owner'] = GetPlayerIdentifiers(source)[1],
['@owner'] = GetPlayerIdentifiers(source)[1],
['@Type'] = 'car',
['@Type'] = 'car',
['@job'] = ''
['@job'] = ''
}, function(data)
}, function(data)
for _,v in pairs(data) do
for _,v in pairs(data) do
local vehicle = json.decode(v.vehicle)
local vehicle = json.decode(v.vehicle)
table.insert(ownedCars, {vehicle = vehicle, stored = v.stored, plate = v.plate})
table.insert(ownedCars, {vehicle = vehicle, stored = v.stored, plate = v.plate})
end
end
cb(ownedCars)
cb(ownedCars)
end)
end)
end
end
end)
end)
-- Store Vehicles
-- Store Vehicles
ESX.RegisterServerCallback('esx_advancedgarage:storeVehicle', function (source, cb, vehicleProps)
ESX.RegisterServerCallback('esx_advancedgarage:storeVehicle', function (source, cb, vehicleProps)
local ownedCars = {}
local ownedCars = {}
local vehplate = vehicleProps.plate:match("^%s*(.-)%s*$")
local vehplate = vehicleProps.plate:match("^%s*(.-)%s*$")
local vehiclemodel = vehicleProps.model
local vehiclemodel = vehicleProps.model
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
--CREO QUE SIRVE PARA IDENTIFICAR QUE EL AUTO QUE SE VA A GUARDAR ES UN AUTO CON DUEÑO
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND @plate = plate', {
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND @plate = plate', {
['@owner'] = xPlayer.identifier,
['@owner'] = xPlayer.identifier,
['@plate'] = vehicleProps.plate
['@plate'] = vehicleProps.plate
}, function (result)
}, function (result)
if result[1] ~= nil then
if result[1] ~= nil then
local originalvehprops = json.decode(result[1].vehicle)
local originalvehprops = json.decode(result[1].vehicle)
if originalvehprops.model == vehiclemodel then
if originalvehprops.model == vehiclemodel then
MySQL.Async.execute('UPDATE owned_vehicles SET vehicle = @vehicle WHERE owner = @owner AND plate = @plate', {
MySQL.Async.execute('UPDATE owned_vehicles SET vehicle = @vehicle WHERE owner = @owner AND plate = @plate', {
['@owner'] = GetPlayerIdentifiers(source)[1],
['@owner'] = GetPlayerIdentifiers(source)[1],
['@vehicle'] = json.encode(vehicleProps),
['@vehicle'] = json.encode(vehicleProps),
['@plate'] = vehicleProps.plate
['@plate'] = vehicleProps.plate
}, function (rowsChanged)
}, function (rowsChanged)
if rowsChanged == 0 then
if rowsChanged == 0 then
print(('esx_advancedgarage: %s attempted to store an vehicle they don\'t own!'):format(GetPlayerIdentifiers(source)[1]))
print(('esx_advancedgarage: %s attempted to store an vehicle they don\'t own!'):format(GetPlayerIdentifiers(source)[1]))
end
end
cb(true)
cb(true)
end)
end)
else
else
if Config.KickPossibleCheaters == true then
if Config.KickPossibleCheaters == true then
if Config.UseCustomKickMessage == true then
if Config.UseCustomKickMessage == true then
print(('esx_advancedgarage: %s attempted to Cheat! Tried Storing: '..vehiclemodel..'. Original Vehicle: '..originalvehprops.model):format(GetPlayerIdentifiers(source)[1]))
print(('esx_advancedgarage: %s attempted to Cheat! Tried Storing: '..vehiclemodel..'. Original Vehicle: '..originalvehprops.model):format(GetPlayerIdentifiers(source)[1]))
DropPlayer(source, _U('custom_kick'))
DropPlayer(source, _U('custom_kick'))
cb(false)
cb(false)
else
else
print(('esx_advancedgarage: %s attempted to Cheat! Tried Storing: '..vehiclemodel..'. Original Vehicle: '..originalvehprops.model):format(GetPlayerIdentifiers(source)[1]))
print(('esx_advancedgarage: %s attempted to Cheat! Tried Storing: '..vehiclemodel..'. Original Vehicle: '..originalvehprops.model):format(GetPlayerIdentifiers(source)[1]))
DropPlayer(source, 'You have been Kicked from the Server for Possible Garage Cheating!!!')
DropPlayer(source, 'You have been Kicked from the Server for Possible Garage Cheating!!!')
cb(false)
cb(false)
end
end
else
else
print(('esx_advancedgarage: %s attempted to Cheat! Tried Storing: '..vehiclemodel..'. Original Vehicle: '..originalvehprops.model):format(GetPlayerIdentifiers(source)[1]))
print(('esx_advancedgarage: %s attempted to Cheat! Tried Storing: '..vehiclemodel..'. Original Vehicle: '..originalvehprops.model):format(GetPlayerIdentifiers(source)[1]))
cb(false)
cb(false)
end
end
end
end
else
else
print(('esx_advancedgarage: %s attempted to store an vehicle they don\'t own!'):format(GetPlayerIdentifiers(source)[1]))
print(('esx_advancedgarage: %s attempted to store an vehicle they don\'t own!'):format(GetPlayerIdentifiers(source)[1]))
cb(false)
cb(false)
end
end
end)
end)
end)
end)
-- Fetch Pounded Aircrafts
-- Fetch Pounded Aircrafts
ESX.RegisterServerCallback('esx_advancedgarage:getOutOwnedAircrafts', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:getOutOwnedAircrafts', function(source, cb)
local ownedAircrafts = {}
local ownedAircrafts = {}
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job AND `stored` = @stored', {
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job AND `stored` = @stored', {
['@owner'] = GetPlayerIdentifiers(source)[1],
['@owner'] = GetPlayerIdentifiers(source)[1],
['@Type'] = 'aircraft',
['@Type'] = 'aircraft',
['@job'] = '',
['@job'] = '',
['@stored'] = false
['@stored'] = false
}, function(data)
}, function(data)
for _,v in pairs(data) do
for _,v in pairs(data) do
local vehicle = json.decode(v.vehicle)
local vehicle = json.decode(v.vehicle)
table.insert(ownedAircrafts, vehicle)
table.insert(ownedAircrafts, vehicle)
end
end
cb(ownedAircrafts)
cb(ownedAircrafts)
end)
end)
end)
end)
-- Fetch Pounded Boats
-- Fetch Pounded Boats
ESX.RegisterServerCallback('esx_advancedgarage:getOutOwnedBoats', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:getOutOwnedBoats', function(source, cb)
local ownedBoats = {}
local ownedBoats = {}
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job AND `stored` = @stored', {
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job AND `stored` = @stored', {
['@owner'] = GetPlayerIdentifiers(source)[1],
['@owner'] = GetPlayerIdentifiers(source)[1],
['@Type'] = 'boat',
['@Type'] = 'boat',
['@job'] = '',
['@job'] = '',
['@stored'] = false
['@stored'] = false
}, function(data)
}, function(data)
for _,v in pairs(data) do
for _,v in pairs(data) do
local vehicle = json.decode(v.vehicle)
local vehicle = json.decode(v.vehicle)
table.insert(ownedBoats, vehicle)
table.insert(ownedBoats, vehicle)
end
end
cb(ownedBoats)
cb(ownedBoats)
end)
end)
end)
end)
-- Fetch Pounded Cars
-- Fetch Pounded Cars
ESX.RegisterServerCallback('esx_advancedgarage:getOutOwnedCars', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:getOutOwnedCars', function(source, cb)
local ownedCars = {}
local ownedCars = {}
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job AND `stored` = @stored', {
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND Type = @Type AND job = @job AND `stored` = @stored', {
['@owner'] = GetPlayerIdentifiers(source)[1],
['@owner'] = GetPlayerIdentifiers(source)[1],
['@Type'] = 'car',
['@Type'] = 'car',
['@job'] = '',
['@job'] = '',
['@stored'] = false
['@stored'] = false
}, function(data)
}, function(data)
for _,v in pairs(data) do
for _,v in pairs(data) do
local vehicle = json.decode(v.vehicle)
local vehicle = json.decode(v.vehicle)
table.insert(ownedCars, vehicle)
table.insert(ownedCars, vehicle)
end
end
cb(ownedCars)
cb(ownedCars)
end)
end)
end)
end)
-- Fetch Pounded Policing Vehicles
-- Fetch Pounded Policing Vehicles
ESX.RegisterServerCallback('esx_advancedgarage:getOutOwnedPolicingCars', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:getOutOwnedPolicingCars', function(source, cb)
local ownedPolicingCars = {}
local ownedPolicingCars = {}
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND job = @job AND `stored` = @stored', {
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND job = @job AND `stored` = @stored', {
['@owner'] = GetPlayerIdentifiers(source)[1],
['@owner'] = GetPlayerIdentifiers(source)[1],
['@job'] = 'police',
['@job'] = 'police',
['@stored'] = false
['@stored'] = false
}, function(data)
}, function(data)
for _,v in pairs(data) do
for _,v in pairs(data) do
local vehicle = json.decode(v.vehicle)
local vehicle = json.decode(v.vehicle)
table.insert(ownedPolicingCars, vehicle)
table.insert(ownedPolicingCars, vehicle)
end
end
cb(ownedPolicingCars)
cb(ownedPolicingCars)
end)
end)
end)
end)
-- Fetch Pounded Ambulance Vehicles
-- Fetch Pounded Ambulance Vehicles
ESX.RegisterServerCallback('esx_advancedgarage:getOutOwnedAmbulanceCars', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:getOutOwnedAmbulanceCars', function(source, cb)
local ownedAmbulanceCars = {}
local ownedAmbulanceCars = {}
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND job = @job AND `stored` = @stored', {
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE owner = @owner AND job = @job AND `stored` = @stored', {
['@owner'] = GetPlayerIdentifiers(source)[1],
['@owner'] = GetPlayerIdentifiers(source)[1],
['@job'] = 'ambulance',
['@job'] = 'ambulance',
['@stored'] = false
['@stored'] = false
}, function(data)
}, function(data)
for _,v in pairs(data) do
for _,v in pairs(data) do
local vehicle = json.decode(v.vehicle)
local vehicle = json.decode(v.vehicle)
table.insert(ownedAmbulanceCars, vehicle)
table.insert(ownedAmbulanceCars, vehicle)
end
end
cb(ownedAmbulanceCars)
cb(ownedAmbulanceCars)
end)
end)
end)
end)
-- Check Money for Pounded Aircrafts
-- Check Money for Pounded Aircrafts
ESX.RegisterServerCallback('esx_advancedgarage:checkMoneyAircrafts', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:checkMoneyAircrafts', function(source, cb)
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer.get('money') >= Config.AircraftPoundPrice then
if xPlayer.get('money') >= Config.AircraftPoundPrice then
cb(true)
cb(true)
else
else
cb(false)
cb(false)
end
end
end)
end)
-- Check Money for Pounded Boats
-- Check Money for Pounded Boats
ESX.RegisterServerCallback('esx_advancedgarage:checkMoneyBoats', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:checkMoneyBoats', function(source, cb)
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer.get('money') >= Config.BoatPoundPrice then
if xPlayer.get('money') >= Config.BoatPoundPrice then
cb(true)
cb(true)
else
else
cb(false)
cb(false)
end
end
end)
end)
-- Check Money for Pounded Cars
-- Check Money for Pounded Cars
ESX.RegisterServerCallback('esx_advancedgarage:checkMoneyCars', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:checkMoneyCars', function(source, cb)
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer.get('money') >= Config.CarPoundPrice then
if xPlayer.get('money') >= Config.CarPoundPrice then
cb(true)
cb(true)
else
else
cb(false)
cb(false)
end
end
end)
end)
-- Check Money for Pounded Policing
-- Check Money for Pounded Policing
ESX.RegisterServerCallback('esx_advancedgarage:checkMoneyPolicing', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:checkMoneyPolicing', function(source, cb)
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer.get('money') >= Config.PolicingPoundPrice then
if xPlayer.get('money') >= Config.PolicingPoundPrice then
cb(true)
cb(true)
else
else
cb(false)
cb(false)
end
end
end)
end)
-- Check Money for Pounded Ambulance
-- Check Money for Pounded Ambulance
ESX.RegisterServerCallback('esx_advancedgarage:checkMoneyAmbulance', function(source, cb)
ESX.RegisterServerCallback('esx_advancedgarage:checkMoneyAmbulance', function(source, cb)
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
if xPlayer.get('money') >= Config.AmbulancePoundPrice then
if xPlayer.get('money') >= Config.AmbulancePoundPrice then
cb(true)
cb(true)
else
else
cb(false)
cb(false)
end
end
end)
end)
-- Pay for Pounded Aircrafts
-- Pay for Pounded Aircrafts
RegisterServerEvent('esx_advancedgarage:payAircraft')
RegisterServerEvent('esx_advancedgarage:payAircraft')
AddEventHandler('esx_advancedgarage:payAircraft', function()
AddEventHandler('esx_advancedgarage:payAircraft', function()
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeMoney(Config.AircraftPoundPrice)
xPlayer.removeMoney(Config.AircraftPoundPrice)
TriggerClientEvent('esx:showNotification', source, _U('you_paid') .. Config.AircraftPoundPrice)
TriggerClientEvent('esx:showNotification', source, _U('you_paid') .. Config.AircraftPoundPrice)
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mechanic', function(account)
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mechanic', function(account)
account.addMoney(Config.AircraftPoundPrice)
account.addMoney(Config.AircraftPoundPrice)
end)
end)
end)
end)
-- Pay for Pounded Boats
-- Pay for Pounded Boats
RegisterServerEvent('esx_advancedgarage:payBoat')
RegisterServerEvent('esx_advancedgarage:payBoat')
AddEventHandler('esx_advancedgarage:payBoat', function()
AddEventHandler('esx_advancedgarage:payBoat', function()
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeMoney(Config.BoatPoundPrice)
xPlayer.removeMoney(Config.BoatPoundPrice)
TriggerClientEvent('esx:showNotification', source, _U('you_paid') .. Config.BoatPoundPrice)
TriggerClientEvent('esx:showNotification', source, _U('you_paid') .. Config.BoatPoundPrice)
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mechanic', function(account)
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mechanic', function(account)
account.addMoney(Config.BoatPoundPrice)
account.addMoney(Config.BoatPoundPrice)
end)
end)
end)
end)
-- Pay for Pounded Cars
-- Pay for Pounded Cars
RegisterServerEvent('esx_advancedgarage:payCar')
RegisterServerEvent('esx_advancedgarage:payCar')
AddEventHandler('esx_advancedgarage:payCar', function()
AddEventHandler('esx_advancedgarage:payCar', function()
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeMoney(Config.CarPoundPrice)
xPlayer.removeMoney(Config.CarPoundPrice)
TriggerClientEvent('esx:showNotification', source, _U('you_paid') .. Config.CarPoundPrice)
TriggerClientEvent('esx:showNotification', source, _U('you_paid') .. Config.CarPoundPrice)
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mechanic', function(account)
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mechanic', function(account)
account.addMoney(Config.CarPoundPrice)
account.addMoney(Config.CarPoundPrice)
end)
end)
end)
end)
-- Pay for Pounded Policing
-- Pay for Pounded Policing
RegisterServerEvent('esx_advancedgarage:payPolicing')
RegisterServerEvent('esx_advancedgarage:payPolicing')
AddEventHandler('esx_advancedgarage:payPolicing', function()
AddEventHandler('esx_advancedgarage:payPolicing', function()
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeMoney(Config.PolicingPoundPrice)
xPlayer.removeMoney(Config.PolicingPoundPrice)
TriggerClientEvent('esx:showNotification', source, _U('you_paid') .. Config.PolicingPoundPrice)
TriggerClientEvent('esx:showNotification', source, _U('you_paid') .. Config.PolicingPoundPrice)
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mechanic', function(account)
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mechanic', function(account)
account.addMoney(Config.PolicingPoundPrice)
account.addMoney(Config.PolicingPoundPrice)
end)
end)
end)
end)
-- Pay for Pounded Ambulance
-- Pay for Pounded Ambulance
RegisterServerEvent('esx_advancedgarage:payAmbulance')
RegisterServerEvent('esx_advancedgarage:payAmbulance')
AddEventHandler('esx_advancedgarage:payAmbulance', function()
AddEventHandler('esx_advancedgarage:payAmbulance', function()
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeMoney(Config.AmbulancePoundPrice)
xPlayer.removeMoney(Config.AmbulancePoundPrice)
TriggerClientEvent('esx:showNotification', source, _U('you_paid') .. Config.AmbulancePoundPrice)
TriggerClientEvent('esx:showNotification', source, _U('you_paid') .. Config.AmbulancePoundPrice)
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mechanic', function(account)
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mechanic', function(account)
account.addMoney(Config.AmbulancePoundPrice)
account.addMoney(Config.AmbulancePoundPrice)
end)
end)
end)
end)
-- Pay to Return Broken Vehicles
-- Pay to Return Broken Vehicles
RegisterServerEvent('esx_advancedgarage:payhealth')
RegisterServerEvent('esx_advancedgarage:payhealth')
AddEventHandler('esx_advancedgarage:payhealth', function(price)
AddEventHandler('esx_advancedgarage:payhealth', function(price)
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
xPlayer.removeMoney(price)
xPlayer.removeMoney(price)
TriggerClientEvent('esx:showNotification', source, _U('you_paid') .. price)
TriggerClientEvent('esx:showNotification', source, _U('you_paid') .. price)
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mechanic', function(account)
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mechanic', function(account)
account.addMoney(price)
account.addMoney(price)
end)
end)
end)
end)
-- Modify State of Vehicles
-- Modify State of Vehicles
--[[
RegisterServerEvent('esx_advancedgarage:setVehicleState')
AddEventHandler('esx_advancedgarage:setVehicleState', function(plate, state)
local xPlayer = ESX.GetPlayerFromId(source)
MySQL.Async.execute('UPDATE owned_vehicles SET `stored` = @stored WHERE plate = @plate', {
['@stored'] = state,
['@plate'] = plate
}, function(rowsChanged)
if rowsChanged == 0 then
print(('esx_advancedgarage: %s exploited the garage!'):format(xPlayer.identifier))
end
end)
end)
--]]
RegisterServerEvent('esx_advancedgarage:setVehicleState')
RegisterServerEvent('esx_advancedgarage:setVehicleState')
AddEventHandler('esx_advancedgarage:setVehicleState', function(plate, state)
AddEventHandler('esx_advancedgarage:setVehicleState', function(plate, state)
local xPlayer = ESX.GetPlayerFromId(source)
local xPlayer = ESX.GetPlayerFromId(source)
MySQL.Async.execute('UPDATE owned_vehicles SET `stored` = @stored WHERE plate = @plate', {
MySQL.Async.execute('UPDATE owned_vehicles SET `stored` = @stored WHERE plate = @plate', {
['@stored'] = state,
['@stored'] = state,
['@plate'] = plate
['@plate'] = plate
}, function(rowsChanged)
}, function(rowsChanged)
if rowsChanged == 0 then
if rowsChanged == 0 then
print(('esx_advancedgarage: %s exploited the garage!'):format(xPlayer.identifier))
print(('esx_advancedgarage: %s exploited the garage!'):format(xPlayer.identifier))
end
end
end)
end)
end)
end)
RegisterServerEvent('esx_advancedgarage:saveVehicleFuel')
AddEventHandler('esx_advancedgarage:saveVehicleFuel', function(plate, fuelLevel)
local xPlayer = ESX.GetPlayerFromId(source)
MySQL.Async.execute('UPDATE owned_vehicles SET `fuel` = @fuel WHERE plate = @plate', {
['@fuel'] = fuelLevel,
['@plate'] = plate
}, function(rowsChanged)
if rowsChanged == 0 then
print(('esx_advancedgarage: %s exploited the garage!'):format(xPlayer.identifier))
end
end)
end)
RegisterServerEvent('esx_advancedgarage:setVehicleFuel')
AddEventHandler('esx_advancedgarage:setVehicleFuel', function(plate, vehicle, estado)
local source = source
MySQL.Async.fetchAll('SELECT * FROM owned_vehicles WHERE plate = @plate', {
['@plate'] = plate
}, function(result)
--if result[1] then
--print(result[1].fuel)
local fuel = result[1].fuel
if estado then
--print(estado) GARAGE
TriggerClientEvent( "setFuel", source, vehicle, plate, fuel )
else
--print(estado) CORRAL
TriggerClientEvent( "setFuel2", source, vehicle, plate, fuel )
end
--end
end)
end)