From 5862349117707b1422a5d7dca12408c0194fc116 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Mon, 21 Nov 2022 11:38:41 -0600 Subject: [PATCH] New util for is player owner of vehicle --- scripts/server/vehicle.js | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/scripts/server/vehicle.js b/scripts/server/vehicle.js index 6e026798..5310fff9 100644 --- a/scripts/server/vehicle.js +++ b/scripts/server/vehicle.js @@ -694,7 +694,7 @@ function buyVehicleCommand(command, params, client) { return false; } - if (canPlayerManageVehicle(client, vehicle)) { + if (doesPlayerOwnVehicle(client, vehicle)) { messagePlayerError(client, getLocaleString(client, "AlreadyOwnVehicle")); return false; } @@ -878,6 +878,34 @@ function canPlayerManageVehicle(client, vehicle) { // =========================================================================== +function doesPlayerOwnVehicle(client, vehicle) { + let vehicleData = getVehicleData(vehicle); + + if (vehicleData.ownerType == AGRP_VEHOWNER_PLAYER) { + if (vehicleData.ownerId == getPlayerData(client).accountData.databaseId) { + return true; + } + } + + if (vehicleData.ownerType == AGRP_VEHOWNER_CLAN) { + if (vehicleData.ownerId == getPlayerCurrentSubAccount(client).clan) { + if (doesPlayerHaveClanPermission(client, "ManageVehicles") || doesPlayerHaveClanPermission(client, "owner")) { + return true; + } + } + } + + if (vehicleData.ownerType == AGRP_VEHOWNER_BIZ) { + if (canPlayerManageBusiness(client, getBusinessIdFromDatabaseId(vehicleData.ownerId))) { + return true; + } + } + + return false; +} + +// =========================================================================== + function setVehicleJobCommand(command, params, client) { if (!isPlayerInAnyVehicle(client)) { messagePlayerError(client, getLocaleString(client, "MustBeInAVehicle"));