You can either directly use this file to replace the original or use the instructions below to make the changes yourself and maybe learn a thing here and there.
Initialization
Add the following at the top of the file:
local ESX = exports["es_extended"]:getSharedObject()
Register all commands
Replace the RegisterCommands function with the following:
function RegisterCommands()
ESX.RegisterCommand(attachClampCommand, commandPermissions, function(xPlayer, args, showError)
OnAttachClampCommand(xPlayer.source)
end, false, { help = "Attach a clamp to the closest vehicle wheel." })
ESX.RegisterCommand(removeClampCommand, commandPermissions, function(xPlayer, args, showError)
OnRemoveClampCommand(xPlayer.source)
end, false, { help = "Remove the clamp from the closest vehicle wheel." })
end
Register all items
Replace the RegisterItems function with the following:
function RegisterItems()
if (clampItemName) then
ESX.RegisterUsableItem(clampItemName, StartClampingProcess)
end
if (removalToolItemName) then
ESX.RegisterUsableItem(removalToolItemName, StartRemovalProcess)
end
if (destroyItemName) then
ESX.RegisterUsableItem(destroyItemName, StartDestructionProcess)
end
end
Check if a player has an item
Replace the GetPlayerHasItem function with the following:
function GetPlayerHasItem(playerId, itemName)
local playerData = ESX.GetPlayerFromId(playerId)
assert(playerData ~= nil, ("\"PlayerData\" could not be found for player \"%s\""):format(GetPlayerName(playerId)))
local item = playerData.getInventoryItem(itemName)
return item ~= nil and item.count > 0
end
Add an item to player inventory
Replace the AddPlayerItem function with the following:
function AddPlayerItem(playerId, itemName)
local playerData = ESX.GetPlayerFromId(playerId)
assert(playerData ~= nil, ("\"PlayerData\" could not be found for player \"%s\""):format(GetPlayerName(playerId)))
playerData.addInventoryItem(itemName, 1)
return true
end
Remove an item from player inventory
Replace the RemovePlayerItem function with the following:
function RemovePlayerItem(playerId, itemName)
local playerData = ESX.GetPlayerFromId(playerId)
assert(playerData ~= nil, ("\"PlayerData\" could not be found for player \"%s\""):format(GetPlayerName(playerId)))
playerData.removeInventoryItem(itemName, 1)
end