121 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
	
		
			4.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local QBCore = exports['qb-core']:GetCoreObject()
 | |
| 
 | |
| -- Container inventory open
 | |
| RegisterNetEvent('disposal:server:openInventory', function(containerID)
 | |
|     local src = source
 | |
|     local Player = QBCore.Functions.GetPlayer(src)
 | |
|     
 | |
|     if not Player then return end
 | |
|     
 | |
|     -- Open the inventory
 | |
|     exports["tgiann-inventory"]:OpenInventory(src, "stash", containerID, {
 | |
|         maxweight = 50000, -- 50kg max
 | |
|         slots = 20, -- 20 Slots
 | |
|         label = 'Müllschredder'
 | |
|     })
 | |
| end)
 | |
| 
 | |
| -- Get items from container
 | |
| RegisterNetEvent('disposal:server:getItems', function(containerID)
 | |
|     local src = source
 | |
|     local Player = QBCore.Functions.GetPlayer(src)
 | |
|     
 | |
|     if not Player then return end
 | |
|     
 | |
|     -- Get items from the container
 | |
|     local items = exports["tgiann-inventory"]:GetSecondaryInventoryItems("stash", containerID)
 | |
|     
 | |
|     -- If items is nil, provide an empty table
 | |
|     if items == nil then items = {} end
 | |
|     
 | |
|     TriggerClientEvent('disposal:client:showMenu', src, items, containerID)
 | |
| end)
 | |
| 
 | |
| -- Dispose single item
 | |
| RegisterNetEvent('disposal:server:disposeSingle', function(itemName, amount, slot, containerID)
 | |
|     local src = source
 | |
|     local Player = QBCore.Functions.GetPlayer(src)
 | |
|     
 | |
|     if not Player then return end
 | |
|     
 | |
|     -- Remove the item from the container
 | |
|     local success = exports["tgiann-inventory"]:RemoveItemFromSecondaryInventory("stash", containerID, itemName, amount, slot)
 | |
|     
 | |
|     if success then
 | |
|         -- Log for admins
 | |
|         print('^3[DISPOSAL]^7 ' .. GetPlayerName(src) .. ' (' .. Player.PlayerData.citizenid .. ') has destroyed ' .. amount .. 'x ' .. itemName)
 | |
|         
 | |
|         -- Discord Webhook
 | |
|         TriggerEvent('qb-log:server:CreateLog', 'disposal', 
 | |
|             'Item Destroyed', 
 | |
|             'orange', 
 | |
|             '**Player:** ' .. GetPlayerName(src) .. 
 | |
|             '\n**Citizen ID:** ' .. Player.PlayerData.citizenid .. 
 | |
|             '\n**Item:** ' .. amount .. 'x ' .. itemName .. 
 | |
|             '\n**Action:** Item destroyed')
 | |
|         
 | |
|         local message = amount .. 'x ' .. itemName .. ' wurde vernichtet!'
 | |
|         TriggerClientEvent('disposal:client:itemDisposed', src, message)
 | |
|         
 | |
|         -- Reload menu
 | |
|         Wait(1000)
 | |
|         TriggerEvent('disposal:server:getItems', containerID)
 | |
|     else
 | |
|         TriggerClientEvent('QBCore:Notify', src, 'Fehler beim Entsorgen des Items!', 'error')
 | |
|     end
 | |
| end)
 | |
| 
 | |
| -- Dispose all items
 | |
| RegisterNetEvent('disposal:server:disposeAll', function(containerID)
 | |
|     local src = source
 | |
|     local Player = QBCore.Functions.GetPlayer(src)
 | |
|     
 | |
|     if not Player then return end
 | |
|     
 | |
|     -- Get all items in the container
 | |
|     local items = exports["tgiann-inventory"]:GetSecondaryInventoryItems("stash", containerID)
 | |
|     
 | |
|     if not items or next(items) == nil then
 | |
|         TriggerClientEvent('QBCore:Notify', src, 'Der Schredder ist bereits leer!', 'error')
 | |
|         return
 | |
|     end
 | |
|     
 | |
|     local disposedItems = {}
 | |
|     local totalItems = 0
 | |
|     
 | |
|     -- Dispose all items
 | |
|     for slot, item in pairs(items) do
 | |
|         if item and item.amount and item.amount > 0 then
 | |
|             local success = exports["tgiann-inventory"]:RemoveItemFromSecondaryInventory("stash", containerID, item.name, item.amount, slot)
 | |
|             if success then
 | |
|                 table.insert(disposedItems, {name = item.name, amount = item.amount})
 | |
|                 totalItems = totalItems + item.amount
 | |
|             end
 | |
|         end
 | |
|     end
 | |
|     
 | |
|     if #disposedItems > 0 then
 | |
|         -- Log for admins
 | |
|         print('^3[DISPOSAL]^7 ' .. GetPlayerName(src) .. ' (' .. Player.PlayerData.citizenid .. ') has destroyed ALL items (' .. totalItems .. ' items)')
 | |
|         
 | |
|         -- Discord Webhook with item list
 | |
|         local itemList = ""
 | |
|         for _, item in pairs(disposedItems) do
 | |
|             itemList = itemList .. '• ' .. item.amount .. 'x ' .. item.name .. '\n'
 | |
|         end
 | |
|         
 | |
|         TriggerEvent('qb-log:server:CreateLog', 'disposal', 
 | |
|             'All Items Destroyed', 
 | |
|             'red', 
 | |
|             '**Player:** ' .. GetPlayerName(src) .. 
 | |
|             '\n**Citizen ID:** ' .. Player.PlayerData.citizenid .. 
 | |
|             '\n**Action:** All items destroyed' .. 
 | |
|             '\n**Total Items:** ' .. totalItems .. 
 | |
|             '\n**Items:**\n' .. itemList)
 | |
|         
 | |
|         local message = 'ALLE Items (' .. totalItems .. ' Stück) wurden vernichtet!'
 | |
|         TriggerClientEvent('disposal:client:itemDisposed', src, message)
 | |
|     else
 | |
|         TriggerClientEvent('QBCore:Notify', src, 'Keine Items zum Entsorgen gefunden!', 'error')
 | |
|     end
 | |
| end)
 | 
