1
- getIsVehicleOrKeyOwner = function (vehicle )
1
+ trim = function (str )
2
+ return tostring (str ):gsub (" %s+" , " " )
3
+ end
4
+
5
+ getKeyFromInventory = function (plate )
6
+ if Config .VehicleKeys .inventory == ' ox_inventory' then
7
+ local inventory = exports .ox_inventory :GetPlayerItems ()
8
+
9
+ for k , v in pairs (inventory ) do
10
+ if v .name == Config .VehicleKeys .item and trim (v .metadata [Config .VehicleKeys .plate ]) == trim (plate ) then
11
+ return true
12
+ end
13
+ end
14
+ elseif Config .VehicleKeys .inventory == ' qs-inventory' then
15
+ local inventory = exports [' qs-inventory' ]:getUserInventory ()
16
+
17
+ for k , v in pairs (inventory ) do
18
+ if v .name == Config .VehicleKeys .item and trim (v .info [Config .VehicleKeys .plate ]) == trim (plate ) then
19
+ return true
20
+ end
21
+ end
22
+ elseif Config .VehicleKeys .inventory == ' core_inventory' then
23
+ local p = promise .new ()
24
+
25
+ if Config .Framework == ' ESX' then
26
+ ESX .TriggerServerCallback (' core_inventory:server:getInventory' , function (inventory )
27
+ p :resolve (inventory )
28
+ end )
29
+ elseif Config .Framework == ' QBCore' then
30
+ QBCore .Functions .TriggerCallback (' core_inventory:server:getInventory' , function (inventory )
31
+ p :resolve (inventory )
32
+ end )
33
+ elseif Config .Framework == ' Standalone' then
34
+ -- Add your own code here
35
+ end
36
+
37
+ local inventory = Citizen .Await (p )
38
+
39
+ for k , v in pairs (inventory ) do
40
+ if v .name == Config .VehicleKeys .item and trim (v .metadata [Config .VehicleKeys .plate ]) == trim (plate ) then
41
+ return true
42
+ end
43
+ end
44
+ else
45
+ -- Add your own code here
46
+ end
47
+
48
+ return false
49
+ end
50
+ exports (' getKeyFromInventory' , getKeyFromInventory )
51
+
52
+ getIsKeyOwner = function (vehicle )
2
53
if not Config .VehicleKeys .enable then return true end
3
- local isVehicleOrKeyOwner , isVehicle , isPlate = false , false , false
54
+ local isKeyOwner , ignoreVehicle , ignorePlate = false , false , false
55
+ local plate = GetVehicleNumberPlateText (vehicle )
4
56
local canToggleEngine = true
5
57
6
58
if Config .VehicleKeys .script == ' VehicleKeyChain' and (GetResourceState (" VehicleKeyChain" ) == " started" ) then
7
- isVehicleOrKeyOwner = exports [" VehicleKeyChain" ]:IsVehicleOrKeyOwner (vehicle )
59
+ isKeyOwner = exports [" VehicleKeyChain" ]:IsVehicleOrKeyOwner (vehicle )
8
60
elseif Config .VehicleKeys .script == ' vehicle_keys' and (GetResourceState (" vehicle_keys" ) == " started" ) then
9
- isVehicleOrKeyOwner = exports [" vehicle_keys" ]:doesPlayerOwnPlate (GetVehicleNumberPlateText (vehicle ))
61
+ isKeyOwner = exports [" vehicle_keys" ]:doesPlayerOwnPlate (plate )
62
+ elseif Config .VehicleKeys .script == ' okokGarage' and (GetResourceState (" okokGarage" ) == " started" ) then
63
+ isKeyOwner = getKeyFromInventory (plate )
10
64
else
11
- if (GetResourceState (Config .VehicleKeys .script ) == " started" ) then
12
- -- Add your own code here
13
- isVehicleOrKeyOwner = true
14
- end
65
+ -- Add your own code here
15
66
end
16
67
17
68
for k , v in pairs (Config .Whitelist .vehicles ) do
18
69
if GetHashKey (v ) == GetEntityModel (vehicle ) then
19
- isVehicle = true
70
+ ignoreVehicle = true
20
71
break
21
72
end
22
73
end
23
74
24
75
for k , v in pairs (Config .Whitelist .plates ) do
25
- if string.find (trim (tostring ( GetVehicleNumberPlateText ( vehicle ))), v ) then
26
- isPlate = true
76
+ if string.find (trim (plate ), trim ( v ) ) then
77
+ ignorePlate = true
27
78
break
28
79
end
29
80
end
30
81
31
- if not isVehicleOrKeyOwner and not isVehicle and not isPlate then
82
+ if not isKeyOwner and not ignoreVehicle and not ignorePlate then
32
83
canToggleEngine = false
33
84
end
34
85
35
86
return canToggleEngine
36
87
end
37
-
38
- trim = function (str )
39
- return string.gsub (str , " %s+" , " " )
40
- end
88
+ exports (' getIsKeyOwner' , getIsKeyOwner )
0 commit comments