116 lines
4.5 KiB
Lua
116 lines
4.5 KiB
Lua
if Config.Inventory ~= 'default' then return end
|
|
|
|
-- ════════════════════════════════════════
|
|
-- DEFAULT INVENTORY (NO ITEM REQUIREMENT)
|
|
-- All functions return positive/true values
|
|
-- ════════════════════════════════════════
|
|
|
|
local Inventory = {}
|
|
Inventory.Config = {
|
|
ItemName = Config.ItemName or 'phone',
|
|
RequireItem = false, -- Default always bypasses item requirement
|
|
DebugMode = Config.Debug or false
|
|
}
|
|
|
|
-- ════════════════════════════════════════
|
|
-- UTILITY FUNCTIONS
|
|
-- ════════════════════════════════════════
|
|
|
|
local function Log(type, message, ...)
|
|
if not Inventory.Config.DebugMode then return end
|
|
|
|
local prefix = '^2[Default Inventory]^7'
|
|
if type == 'error' then prefix = '^1[Default Inventory ERROR]^7' end
|
|
if type == 'warn' then prefix = '^3[Default Inventory WARNING]^7' end
|
|
|
|
print(string.format('%s %s', prefix, string.format(message, ...)))
|
|
end
|
|
|
|
-- ════════════════════════════════════════
|
|
-- INVENTORY FUNCTIONS (ALL RETURN TRUE/POSITIVE)
|
|
-- ════════════════════════════════════════
|
|
|
|
function Inventory.GetAllItems(_source)
|
|
Log('debug', 'GetAllItems called - returning empty table (default mode)')
|
|
return {}
|
|
end
|
|
|
|
function Inventory.GetItemsByName(_source, _itemName)
|
|
Log('debug', 'GetItemsByName called - returning empty table (default mode)')
|
|
return {}
|
|
end
|
|
|
|
function Inventory.GetPhoneItem(_source)
|
|
Log('debug', 'GetPhoneItem called - returning true (default mode)')
|
|
return true
|
|
end
|
|
|
|
function Inventory.HasPhoneWithNumber(_source, _phoneNumber)
|
|
Log('debug', 'HasPhoneWithNumber called - returning success (default mode)')
|
|
return {
|
|
success = true,
|
|
myPhone = true
|
|
}
|
|
end
|
|
|
|
function Inventory.HasAnyPhone(_source)
|
|
Log('debug', 'HasAnyPhone called - returning true (default mode)')
|
|
return true
|
|
end
|
|
|
|
function Inventory.SetPhoneNumber(_source, _phoneNumber)
|
|
Log('debug', 'SetPhoneNumber called - returning true (default mode)')
|
|
return true
|
|
end
|
|
|
|
function Inventory.UpdatePhoneMetadata(_source, _phoneNumber, _metadata)
|
|
Log('debug', 'UpdatePhoneMetadata called - returning true (default mode)')
|
|
return true
|
|
end
|
|
|
|
function Inventory.RemoveInventoryItem(_source, _itemname, _amount)
|
|
Log('debug', 'RemoveInventoryItem called - returning true (default mode)')
|
|
return true
|
|
end
|
|
|
|
-- ════════════════════════════════════════
|
|
-- USEABLE ITEMS (Optional - Only if Core exists)
|
|
-- ════════════════════════════════════════
|
|
|
|
Citizen.CreateThread(function()
|
|
if Core and Core.Functions and Core.Functions.CreateUseableItem then
|
|
Core.Functions.CreateUseableItem(Inventory.Config.ItemName, function(source, item)
|
|
Log('debug', 'Phone item used by player %s', source)
|
|
TriggerClientEvent("codem-phone:PhoneUsed", source, item or {})
|
|
end)
|
|
|
|
if Config.BatterySystem and Config.BatterySystem.enable then
|
|
Core.Functions.CreateUseableItem(Config.BatterySystem.powerBankItemName, function(source, _item)
|
|
Log('debug', 'PowerBank used by player %s', source)
|
|
TriggerClientEvent("codem-phone:UsePowerBank", source)
|
|
end)
|
|
end
|
|
else
|
|
Log('warn', 'Core.Functions.CreateUseableItem not available - skipping useable item registration')
|
|
end
|
|
end)
|
|
|
|
|
|
RPC.Register('codem-phone:inventory:HasPhoneItem', function(source, phoneNumber)
|
|
return Inventory.HasPhoneWithNumber(source, phoneNumber)
|
|
end)
|
|
|
|
RPC.Register('codem-phone:inventory:HasAnyPhone', function(source)
|
|
return Inventory.HasAnyPhone(source)
|
|
end)
|
|
|
|
RPC.Register('codem-phone:inventory:GetPhoneItem', function(source)
|
|
return Inventory.GetPhoneItem(source)
|
|
end)
|
|
|
|
|
|
GetPlayerInventoryItem = Inventory.GetPhoneItem
|
|
SetPhoneNumber = Inventory.SetPhoneNumber
|
|
UpdatePhoneMetadata = Inventory.UpdatePhoneMetadata
|
|
GetItemsByName = Inventory.GetItemsByName
|