74 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local QBCore = exports['qb-core']:GetCoreObject()
 | |
| 
 | |
| -- Open backpack inventory
 | |
| RegisterNetEvent('backpack:server:openInventory', function(backpackStashId, backpackId, textureId, gender)
 | |
|     local src = source
 | |
|     local Player = QBCore.Functions.GetPlayer(src)
 | |
|     
 | |
|     if not Player then return end
 | |
|     
 | |
|     -- Open the inventory
 | |
|     if not Config.Backpacks[gender] or not Config.Backpacks[gender][backpackId] then
 | |
|         print("Error: Backpack config not found for Gender=" .. gender .. ", ID=" .. backpackId)
 | |
|         return
 | |
|     end
 | |
|     
 | |
|     local backpackConfig = Config.Backpacks[gender][backpackId]
 | |
|     
 | |
|     exports["tgiann-inventory"]:OpenInventory(src, "stash", backpackStashId, {
 | |
|         maxweight = backpackConfig.maxweight,
 | |
|         slots = backpackConfig.slots,
 | |
|         label = backpackConfig.label
 | |
|     })
 | |
|     
 | |
|     -- Send success notification
 | |
|     TriggerClientEvent('ox_lib:notify', src, Config.Notifications.backpackOpened)
 | |
|     
 | |
|     -- Log the backpack opening if enabled
 | |
|     if Config.Logs.enabled then
 | |
|         TriggerEvent('qb-log:server:CreateLog', 
 | |
|             Config.Logs.webhookName, 
 | |
|             Config.Logs.openTitle, 
 | |
|             Config.Logs.openColor, 
 | |
|             '**Player:** ' .. Player.PlayerData.name .. 
 | |
|             '\n**Gender:** ' .. (gender == 0 and "Male" or "Female") ..
 | |
|             '\n**Backpack Type:** ' .. backpackConfig.label .. 
 | |
|             '\n**Backpack ID:** ' .. backpackId .. 
 | |
|             '\n**Texture ID:** ' .. textureId .. 
 | |
|             '\n**Stash ID:** ' .. backpackStashId)
 | |
|     end
 | |
| end)
 | |
| 
 | |
| -- Add command to check backpack info
 | |
| QBCore.Commands.Add('checkbackpack', 'Check your backpack info', {}, false, function(source, args)
 | |
|     TriggerClientEvent('backpack:client:checkBackpack', source)
 | |
| end)
 | |
| 
 | |
| -- Add command to list all clothing (for debugging)
 | |
| QBCore.Commands.Add('listclothing', 'List all clothing components (Debug)', {}, false, function(source, args)
 | |
|     TriggerClientEvent('backpack:client:listClothing', source)
 | |
| end)
 | |
| 
 | |
| -- Receive backpack info from client and show notification
 | |
| RegisterNetEvent('backpack:server:showBackpackInfo', function(backpackId, textureId, gender)
 | |
|     local src = source
 | |
|     local Player = QBCore.Functions.GetPlayer(src)
 | |
|     
 | |
|     if backpackId and Config.Backpacks[gender] and Config.Backpacks[gender][backpackId] then
 | |
|         local backpackConfig = Config.Backpacks[gender][backpackId]
 | |
|         
 | |
|         TriggerClientEvent('ox_lib:notify', src, {
 | |
|             title = 'Backpack Info',
 | |
|             description = 'Type: ' .. backpackConfig.label .. 
 | |
|                           '\nGender: ' .. (gender == 0 and "Male" or "Female") ..
 | |
|                           '\nDrawable ID: ' .. backpackId ..
 | |
|                           '\nTexture ID: ' .. textureId ..
 | |
|                           '\nCapacity: ' .. (backpackConfig.maxweight / 1000) .. 'kg' ..
 | |
|                           '\nSlots: ' .. backpackConfig.slots,
 | |
|             type = 'info',
 | |
|             duration = 5000
 | |
|         })
 | |
|     else
 | |
|         TriggerClientEvent('ox_lib:notify', src, Config.Notifications.noBackpack)
 | |
|     end
 | |
| end)
 | 
