Remove inventory code from the core (#784)

* tweak(config): remove inventory code

* tweak(client/functions): remove inventory code

* cleanup(server/commands): remove inventory command

* cleanup(server/events): remove hasitem callback

* cleanup(server/functions): remove inventory code

* cleanup(server/player): remove inventory code

* feat(server/player): QBCore:Player:SetPlayerData server side

Removed QBCore:Server:PlayerLoaded for PR that will be merged before me that adds it

* feat(server/player): QBCore:Server:OnGangUpdate

* fix(shared/items): remove duplicate snowball

* fix(server/events): warn for exploitable event

* fix(server/functions): startup error

* feat(server/player): some backwards compatibility

* fix(server/events): warn for exploitable event

* feat(server/player): Player.Functions.AddField

* feat(server/exports): SetField and AddField

* fix(server/player): inventory state check
This commit is contained in:
BerkieBb
2022-08-19 18:33:38 +02:00
committed by GitHub
parent 205ae78a18
commit d88e51ee4f
9 changed files with 119 additions and 382 deletions
+18 -33
View File
@@ -253,15 +253,28 @@ end
-- Items
function QBCore.Functions.CreateUseableItem(item, cb)
QBCore.UseableItems[item] = cb
if GetResourceState('qb-inventory') == 'missing' then return end
if GetResourceState('qb-inventory') ~= 'started' then
CreateThread(function()
repeat
Wait(1000)
until GetResourceState('qb-inventory') == 'started'
exports['qb-inventory']:CreateUsableItem(item, cb)
end)
else
exports['qb-inventory']:CreateUsableItem(item, cb)
end
end
function QBCore.Functions.CanUseItem(item)
return QBCore.UseableItems[item]
if GetResourceState('qb-inventory') == 'missing' then return end
return exports['qb-inventory']:GetUsableItem(item)
end
function QBCore.Functions.UseItem(source, item)
QBCore.UseableItems[item.name](source, item)
if GetResourceState('qb-inventory') == 'missing' then return end
exports['qb-inventory']:UseItem(source, item)
end
-- Kick Player
@@ -402,36 +415,8 @@ 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 ((amount and item.amount >= amount) or (not isArray and item.amount >= v) 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 (item and amount and item.amount >= amount)) then
return true
end
end
return false
if GetResourceState('qb-inventory') == 'missing' then return end
return exports['qb-inventory']:HasItem(source, items, amount)
end
function QBCore.Functions.Notify(source, text, type, length)