mirror of
https://github.com/qbcore-fivem/qb-core.git
synced 2026-09-04 17:23:31 +00:00
Merge branch 'main' into patch-1
This commit is contained in:
+29
-6
@@ -11,12 +11,35 @@ function QBCore.Functions.GetCoords(entity)
|
|||||||
return vector4(GetEntityCoords(entity), GetEntityHeading(entity))
|
return vector4(GetEntityCoords(entity), GetEntityHeading(entity))
|
||||||
end
|
end
|
||||||
|
|
||||||
function QBCore.Functions.HasItem(item)
|
function QBCore.Functions.HasItem(items, amount)
|
||||||
local p = promise.new()
|
local isTable = type(items) == 'table'
|
||||||
QBCore.Functions.TriggerCallback('QBCore:HasItem', function(result)
|
local isArray = isTable and table.type(items) == 'array' or false
|
||||||
p:resolve(result)
|
local totalItems = #items
|
||||||
end, item)
|
local count = 0
|
||||||
return Citizen.Await(p)
|
local kvIndex = 2
|
||||||
|
if isTable and not isArray then
|
||||||
|
totalItems = 0
|
||||||
|
for _ in pairs(items) do totalItems += 1 end
|
||||||
|
kvIndex = 1
|
||||||
|
end
|
||||||
|
for _, itemData in pairs(QBCore.PlayerData.items) do
|
||||||
|
if isTable then
|
||||||
|
for k, v in pairs(items) do
|
||||||
|
local itemKV = {k, v}
|
||||||
|
if itemData and itemData.name == itemKV[kvIndex] and ((not amount and not isArray and itemData.amount >= v) or (isArray and amount and itemData.amount >= amount) or (not amount and isArray)) then
|
||||||
|
count += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if count == totalItems then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
else -- Single item as string
|
||||||
|
if itemData and itemData.name == items and (not amount or (amount and itemData.amount >= amount)) then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Utility
|
-- Utility
|
||||||
|
|||||||
@@ -367,3 +367,38 @@ function QBCore.Functions.IsLicenseInUse(license)
|
|||||||
end
|
end
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Utility functions
|
||||||
|
|
||||||
|
function QBCore.Functions.HasItem(source, items, amount)
|
||||||
|
local Player = QBCore.Functions.GetPlayer(source)
|
||||||
|
if not Player then return false end
|
||||||
|
local isTable = type(items) == 'table'
|
||||||
|
local isArray = isTable and table.type(items) == 'array' or false
|
||||||
|
local totalItems = #items
|
||||||
|
local count = 0
|
||||||
|
local kvIndex = 2
|
||||||
|
if isTable and not isArray then
|
||||||
|
totalItems = 0
|
||||||
|
for _ in pairs(items) do totalItems += 1 end
|
||||||
|
kvIndex = 1
|
||||||
|
end
|
||||||
|
if isTable then
|
||||||
|
for k, v in pairs(items) do
|
||||||
|
local itemKV = {k, v}
|
||||||
|
local item = Player.Functions.GetItemByName(itemKV[kvIndex])
|
||||||
|
if item and ((not amount and not isArray and item.amount >= v) or (isArray and amount and item.amount >= amount) or (not amount and isArray)) then
|
||||||
|
count += 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if count == totalItems then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
else -- Single item as string
|
||||||
|
local item = Player.Functions.GetItemByName(items)
|
||||||
|
if item and (not amount or (amount and item.amount >= amount)) then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user