diff --git a/server/events.lua b/server/events.lua index 9fedad9..06876ce 100644 --- a/server/events.lua +++ b/server/events.lua @@ -237,3 +237,7 @@ QBCore.Functions.CreateCallback('QBCore:Server:CreateVehicle', function(source, if warp then TaskWarpPedIntoVehicle(GetPlayerPed(source), veh, -1) end cb(NetworkGetNetworkIdFromEntity(veh)) end) + +--QBCore.Functions.CreateCallback('QBCore:HasItem', function(source, cb, items, amount) +-- https://github.com/qbcore-framework/qb-inventory/blob/e4ef156d93dd1727234d388c3f25110c350b3bcf/server/main.lua#L2066 +--end) diff --git a/server/functions.lua b/server/functions.lua index 045e6fc..f586e1e 100644 --- a/server/functions.lua +++ b/server/functions.lua @@ -1,6 +1,7 @@ QBCore.Functions = {} QBCore.Player_Buckets = {} QBCore.Entity_Buckets = {} +QBCore.UsableItems = {} -- Getters -- Get your player first and then trigger a function on them @@ -251,24 +252,12 @@ end -- Items -function QBCore.Functions.CreateUseableItem(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 +function QBCore.Functions.CreateUseableItem(item, data) + QBCore.UsableItems[item] = data end function QBCore.Functions.CanUseItem(item) - if GetResourceState('qb-inventory') == 'missing' then return end - return exports['qb-inventory']:GetUsableItem(item) + return QBCore.UsableItems[item] end function QBCore.Functions.UseItem(source, item) @@ -276,16 +265,6 @@ function QBCore.Functions.UseItem(source, item) exports['qb-inventory']:UseItem(source, item) end -exports('SetUseableItems', function(val) - QBCore.UseableItems = val -end) - -exports('SetUseableItem', function(item, cb) - QBCore.UseableItems[item] = cb -end) - -exports('GetUseableItems', function() return QBCore.UseableItems end) - -- Kick Player function QBCore.Functions.Kick(source, reason, setKickReason, deferrals) @@ -357,7 +336,14 @@ end function QBCore.Functions.HasPermission(source, permission) local src = source - if IsPlayerAceAllowed(src, permission) then return true end + if type(permission) == "string" then + if IsPlayerAceAllowed(src, permission) then return true end + elseif type(permission) == "table" then + for _, permLevel in pairs(permission) do + if IsPlayerAceAllowed(src, permLevel) then return true end + end + end + return false end diff --git a/server/main.lua b/server/main.lua index 09b0474..368dc05 100644 --- a/server/main.lua +++ b/server/main.lua @@ -3,7 +3,6 @@ QBCore.Config = QBConfig QBCore.Shared = QBShared QBCore.ClientCallbacks = {} QBCore.ServerCallbacks = {} -QBCore.UseableItems = {} exports('GetCoreObject', function() return QBCore diff --git a/server/player.lua b/server/player.lua index becc47e..823f647 100644 --- a/server/player.lua +++ b/server/player.lua @@ -346,11 +346,13 @@ function QBCore.Player.CreatePlayer(PlayerData, Offline) amount = tonumber(amount) if amount < 0 then return false end if not self.PlayerData.money[moneytype] then return false end + local difference = amount - self.PlayerData.money[moneytype] self.PlayerData.money[moneytype] = amount if not self.Offline then self.Functions.UpdatePlayerData() TriggerEvent('qb-log:server:CreateLog', 'playermoney', 'SetMoney', 'green', '**' .. GetPlayerName(self.PlayerData.source) .. ' (citizenid: ' .. self.PlayerData.citizenid .. ' | id: ' .. self.PlayerData.source .. ')** $' .. amount .. ' (' .. moneytype .. ') set, new ' .. moneytype .. ' balance: ' .. self.PlayerData.money[moneytype] .. ' reason: ' .. reason) + TriggerClientEvent('hud:client:OnMoneyChange', self.PlayerData.source, moneytype, math.abs(difference), difference < 0) TriggerClientEvent('QBCore:Client:OnMoneyChange', self.PlayerData.source, moneytype, amount, "set") TriggerEvent('QBCore:Server:OnMoneyChange', self.PlayerData.source, moneytype, amount, "set") end diff --git a/shared/main.lua b/shared/main.lua index 3eb8f61..6b09b12 100644 --- a/shared/main.lua +++ b/shared/main.lua @@ -35,6 +35,11 @@ function QBShared.Trim(value) return (string.gsub(value, '^%s*(.-)%s*$', '%1')) end +function QBShared.FirstToUpper(value) + if not value then return nil end + return (value:gsub("^%l", string.upper)) +end + function QBShared.Round(value, numDecimalPlaces) if not numDecimalPlaces then return math.floor(value + 0.5) end local power = 10 ^ numDecimalPlaces