Skip to content

Commit

Permalink
feat: give vehicle owner keys
Browse files Browse the repository at this point in the history
  • Loading branch information
Manason committed Oct 1, 2024
1 parent d38d072 commit cb671bb
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 6 deletions.
18 changes: 15 additions & 3 deletions client/functions.lua
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,21 @@ end
function HasKeys(vehicle)
vehicle = vehicle or cache.vehicle
if not vehicle then return false end
local keysList = LocalPlayer.state.keysList or {}
local sessionId = Entity(vehicle).state.sessionId
return keysList[sessionId] or false
local keysList = LocalPlayer.state.keysList
if keysList then
local sessionId = Entity(vehicle).state.sessionId
if keysList[sessionId] then
return true
end
end

local owner = Entity(vehicle).state.owner
if owner and QBX.PlayerData.citizenid == owner then
lib.callback.await('qbx_vehiclekeys:server:giveKeys', false, VehToNet(vehicle))
return true
end

return false
end

exports('HasKeys', HasKeys)
Expand Down
27 changes: 24 additions & 3 deletions server/keys.lua
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,32 @@ exports('GiveKeys', GiveKeys)
---@return boolean
function HasKeys(src, vehicle)
local keysList = Player(src).state.keysList
if not keysList then return false end
if keysList then
local sessionId = Entity(vehicle).state.sessionId
if keysList[sessionId] then
return true
end
end

local sessionId = Entity(vehicle).state.sessionId
return keysList[sessionId] or false
local owner = Entity(vehicle).state.owner
if owner and getCitizenId(src) == owner then
GiveKeys(src, vehicle)
return true
end

return false
end

exports('HasKeys', HasKeys)

lib.callback.register('qbx_vehiclekeys:server:giveKeys', function(source, netId)
GiveKeys(source, NetworkGetEntityFromNetworkId(netId))
end)

AddStateBagChangeHandler('vehicleid', nil, function(bagName, _, vehicleId)
local vehicle = GetEntityFromStateBagName(bagName)
if not vehicle or vehicle == 0 then return end
local owner = exports.qbx_vehicles:GetPlayerVehicle(vehicleId)?.citizenid
if not owner then return end
Entity(vehicle).state:set('owner', owner, true)
end)

0 comments on commit cb671bb

Please sign in to comment.