forked from Simnation/Main
edi
This commit is contained in:
parent
10000b6b8c
commit
3a764e7c31
4 changed files with 114 additions and 14 deletions
|
@ -6,9 +6,9 @@ local function deleteOldTrackers()
|
|||
return MySQL.query.await('DELETE FROM `vehicle_trackers` WHERE startedAt < (NOW() - INTERVAL 7 DAY)')
|
||||
end
|
||||
|
||||
local function addTracker(serialNumber, vehiclePlate, owner)
|
||||
return MySQL.prepare.await('INSERT INTO `vehicle_trackers` (`serialNumber`, `vehiclePlate`, `owner`) VALUES (?, ?, ?)',
|
||||
{ serialNumber, vehiclePlate, owner })
|
||||
local function addTracker(serialNumber, vehiclePlate, owner, name)
|
||||
return MySQL.prepare.await('INSERT INTO `vehicle_trackers` (`serialNumber`, `vehiclePlate`, `owner`, `name`) VALUES (?, ?, ?, ?)',
|
||||
{ serialNumber, vehiclePlate, owner, name })
|
||||
end
|
||||
|
||||
local function deleteTracker(vehiclePlate)
|
||||
|
@ -16,7 +16,7 @@ local function deleteTracker(vehiclePlate)
|
|||
end
|
||||
|
||||
local function getTracker(serialNumber)
|
||||
return MySQL.single.await('SELECT `serialNumber`, `vehiclePlate` FROM `vehicle_trackers` WHERE `serialNumber` = ? LIMIT 1', { serialNumber })
|
||||
return MySQL.single.await('SELECT `serialNumber`, `vehiclePlate`, `name` FROM `vehicle_trackers` WHERE `serialNumber` = ? LIMIT 1', { serialNumber })
|
||||
end
|
||||
|
||||
local function isTracked(vehiclePlate)
|
||||
|
@ -24,7 +24,12 @@ local function isTracked(vehiclePlate)
|
|||
end
|
||||
|
||||
local function getPlayerTrackers(owner)
|
||||
return MySQL.query.await('SELECT `serialNumber`, `vehiclePlate` FROM `vehicle_trackers` WHERE `owner` = ?', { owner })
|
||||
return MySQL.query.await('SELECT `serialNumber`, `vehiclePlate`, `name` FROM `vehicle_trackers` WHERE `owner` = ?', { owner })
|
||||
end
|
||||
|
||||
local function updateTrackerName(serialNumber, name)
|
||||
return MySQL.prepare.await('UPDATE `vehicle_trackers` SET `name` = ? WHERE `serialNumber` = ?',
|
||||
{ name, serialNumber })
|
||||
end
|
||||
|
||||
-- Utility functions
|
||||
|
@ -94,7 +99,7 @@ lib.callback.register('qb_vehicle_tracker:getTrackedVehicleBySerial', function(_
|
|||
|
||||
local vehCoords = GetEntityCoords(vehicleEntity)
|
||||
|
||||
return tracker.vehiclePlate, vector2(vehCoords.x, vehCoords.y)
|
||||
return tracker.vehiclePlate, vector2(vehCoords.x, vehCoords.y), tracker.name
|
||||
end)
|
||||
|
||||
lib.callback.register('qb_vehicle_tracker:isVehicleTracked', function(source, vehiclePlate)
|
||||
|
@ -110,7 +115,8 @@ lib.callback.register('qb_vehicle_tracker:placeTracker', function(source, vehicl
|
|||
if not isPlayerNearVehicle(GetEntityCoords(GetPlayerPed(source)), vehiclePlate) then return false end
|
||||
|
||||
local Player = QBCore.Functions.GetPlayer(source)
|
||||
if not addTracker(serialNumber, trim(vehiclePlate), Player.PlayerData.citizenid) then return false end
|
||||
local defaultName = "Tracker " .. trim(vehiclePlate)
|
||||
if not addTracker(serialNumber, trim(vehiclePlate), Player.PlayerData.citizenid, defaultName) then return false end
|
||||
|
||||
Player.Functions.RemoveItem(config.trackerItem, 1, slot)
|
||||
TriggerClientEvent('inventory:client:ItemBox', source, QBCore.Shared.Items[config.trackerItem], 'remove')
|
||||
|
@ -139,3 +145,29 @@ lib.callback.register('qb_vehicle_tracker:getPlayerTrackers', function(source, c
|
|||
|
||||
return getPlayerTrackers(citizenid)
|
||||
end)
|
||||
|
||||
lib.callback.register('qb_vehicle_tracker:updateTrackerName', function(source, serialNumber, name)
|
||||
if type(serialNumber) ~= "string" or string.len(serialNumber) < 11 or type(name) ~= "string" then return false end
|
||||
|
||||
local Player = QBCore.Functions.GetPlayer(source)
|
||||
|
||||
-- Get the tracker to verify it exists
|
||||
local tracker = getTracker(serialNumber)
|
||||
if not tracker then return false end
|
||||
|
||||
-- Verify the player owns trackers with this serial number
|
||||
local playerTrackers = getPlayerTrackers(Player.PlayerData.citizenid)
|
||||
local isOwner = false
|
||||
|
||||
for _, t in ipairs(playerTrackers) do
|
||||
if t.serialNumber == serialNumber then
|
||||
isOwner = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if not isOwner then return false end
|
||||
|
||||
-- Update the name
|
||||
return updateTrackerName(serialNumber, name)
|
||||
end)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue