mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-30 17:58:54 +00:00
96f9dab2a8
Co-Authored-By: danishrp <danishrp@users.noreply.github.com>
79 lines
2.3 KiB
Lua
79 lines
2.3 KiB
Lua
ESX = nil
|
|
local Vehicles
|
|
|
|
TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
|
|
|
|
RegisterServerEvent('esx_lscustom:buyMod')
|
|
AddEventHandler('esx_lscustom:buyMod', function(price)
|
|
local _source = source
|
|
local xPlayer = ESX.GetPlayerFromId(_source)
|
|
price = tonumber(price)
|
|
|
|
if Config.IsMechanicJobOnly then
|
|
local societyAccount
|
|
|
|
TriggerEvent('esx_addonaccount:getSharedAccount', 'society_mechanic', function(account)
|
|
societyAccount = account
|
|
end)
|
|
|
|
if price < societyAccount.money then
|
|
TriggerClientEvent('esx_lscustom:installMod', _source)
|
|
TriggerClientEvent('esx:showNotification', _source, _U('purchased'))
|
|
societyAccount.removeMoney(price)
|
|
else
|
|
TriggerClientEvent('esx_lscustom:cancelInstallMod', _source)
|
|
TriggerClientEvent('esx:showNotification', _source, _U('not_enough_money'))
|
|
end
|
|
else
|
|
if price < xPlayer.getMoney() then
|
|
TriggerClientEvent('esx_lscustom:installMod', _source)
|
|
TriggerClientEvent('esx:showNotification', _source, _U('purchased'))
|
|
xPlayer.removeMoney(price)
|
|
else
|
|
TriggerClientEvent('esx_lscustom:cancelInstallMod', _source)
|
|
TriggerClientEvent('esx:showNotification', _source, _U('not_enough_money'))
|
|
end
|
|
end
|
|
end)
|
|
|
|
RegisterServerEvent('esx_lscustom:refreshOwnedVehicle')
|
|
AddEventHandler('esx_lscustom:refreshOwnedVehicle', function(vehicleProps)
|
|
local xPlayer = ESX.GetPlayerFromId(source)
|
|
|
|
MySQL.Async.fetchAll('SELECT vehicle FROM owned_vehicles WHERE plate = @plate', {
|
|
['@plate'] = vehicleProps.plate
|
|
}, function(result)
|
|
if result[1] then
|
|
local vehicle = json.decode(result[1].vehicle)
|
|
|
|
if vehicleProps.model == vehicle.model then
|
|
MySQL.Async.execute('UPDATE owned_vehicles SET vehicle = @vehicle WHERE plate = @plate', {
|
|
['@plate'] = vehicleProps.plate,
|
|
['@vehicle'] = json.encode(vehicleProps)
|
|
})
|
|
else
|
|
print(('esx_lscustom: %s attempted to upgrade vehicle with mismatching vehicle model!'):format(xPlayer.identifier))
|
|
end
|
|
end
|
|
end)
|
|
end)
|
|
|
|
ESX.RegisterServerCallback('esx_lscustom:getVehiclesPrices', function(source, cb)
|
|
if not Vehicles then
|
|
MySQL.Async.fetchAll('SELECT * FROM vehicles', {}, function(result)
|
|
local vehicles = {}
|
|
|
|
for i=1, #result, 1 do
|
|
table.insert(vehicles, {
|
|
model = result[i].model,
|
|
price = result[i].price
|
|
})
|
|
end
|
|
|
|
Vehicles = vehicles
|
|
cb(Vehicles)
|
|
end)
|
|
else
|
|
cb(Vehicles)
|
|
end
|
|
end) |