diff --git a/scripts/server/bitflag.js b/scripts/server/bitflag.js index 8aa99b08..7a0f0e91 100644 --- a/scripts/server/bitflag.js +++ b/scripts/server/bitflag.js @@ -329,7 +329,7 @@ function doesPlayerHaveStaffPermission(client, requiredFlags) { // =========================================================================== -function doesPlayerHaveClanPermission(client, requiredFlags) { +function doesPlayerHaveClanPermission(client, requiredFlags, exemptAdminFlag = false) { if (isConsole(client)) { return true; } @@ -338,8 +338,10 @@ function doesPlayerHaveClanPermission(client, requiredFlags) { return true; } - if (doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageClans"))) { - return true; + if (exemptAdminFlag == false) { + if (doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageClans"))) { + return true; + } } let clanFlags = 0; @@ -359,7 +361,7 @@ function doesPlayerHaveClanPermission(client, requiredFlags) { // =========================================================================== -function doesPlayerHaveJobPermission(client, requiredFlags) { +function doesPlayerHaveJobPermission(client, requiredFlags, exemptAdminFlag = false) { if (isConsole(client)) { return true; } @@ -368,8 +370,10 @@ function doesPlayerHaveJobPermission(client, requiredFlags) { return true; } - if (doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageJobs"))) { - return true; + if (exemptAdminFlag == false) { + if (doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageJobs"))) { + return true; + } } let jobFlags = 0; diff --git a/scripts/server/vehicle.js b/scripts/server/vehicle.js index 7d5d6bc8..25496545 100644 --- a/scripts/server/vehicle.js +++ b/scripts/server/vehicle.js @@ -693,7 +693,7 @@ function buyVehicleCommand(command, params, client) { return false; } - if (doesPlayerOwnVehicle(client, vehicle)) { + if (canPlayerManageVehicle(client, vehicle, true)) { messagePlayerError(client, getLocaleString(client, "AlreadyOwnVehicle")); return false; } @@ -845,11 +845,13 @@ function doesPlayerHaveVehicleKeys(client, vehicle) { // =========================================================================== -function canPlayerManageVehicle(client, vehicle) { +function canPlayerManageVehicle(client, vehicle, exemptAdminFlag = false) { let vehicleData = getVehicleData(vehicle); - if (doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageVehicles"))) { - return true; + if (!exemptAdminFlag) { + if (doesPlayerHaveStaffPermission(client, getStaffFlagValue("ManageVehicles"))) { + return true; + } } if (vehicleData.ownerType == AGRP_VEHOWNER_PLAYER) { @@ -860,14 +862,14 @@ function canPlayerManageVehicle(client, vehicle) { if (vehicleData.ownerType == AGRP_VEHOWNER_CLAN) { if (vehicleData.ownerId == getPlayerCurrentSubAccount(client).clan) { - if (doesPlayerHaveClanPermission(client, "ManageVehicles") || doesPlayerHaveClanPermission(client, "owner")) { + if (doesPlayerHaveClanPermission(client, "ManageVehicles")) { return true; } } } if (vehicleData.ownerType == AGRP_VEHOWNER_BIZ) { - if (canPlayerManageBusiness(client, getBusinessIdFromDatabaseId(vehicleData.ownerId))) { + if (canPlayerManageBusiness(client, getBusinessIdFromDatabaseId(vehicleData.ownerId), exemptAdminFlag)) { return true; } } @@ -888,14 +890,14 @@ function doesPlayerOwnVehicle(client, vehicle) { if (vehicleData.ownerType == AGRP_VEHOWNER_CLAN) { if (vehicleData.ownerId == getPlayerCurrentSubAccount(client).clan) { - if (doesPlayerHaveClanPermission(client, "ManageVehicles") || doesPlayerHaveClanPermission(client, "owner")) { + if (doesPlayerHaveClanPermission(client, "ManageVehicles")) { return true; } } } if (vehicleData.ownerType == AGRP_VEHOWNER_BIZ) { - if (canPlayerManageBusiness(client, getBusinessIdFromDatabaseId(vehicleData.ownerId))) { + if (canPlayerManageBusiness(client, getBusinessIdFromDatabaseId(vehicleData.ownerId), true)) { return true; } }