From ff10efa7d1cc7921c03e9f16872af11fabe44ef5 Mon Sep 17 00:00:00 2001 From: Nordi98 Date: Sun, 27 Jul 2025 22:23:08 +0200 Subject: [PATCH] Update server.lua --- .../[inventory]/nordi_schredder/server.lua | 106 ++++-------------- 1 file changed, 22 insertions(+), 84 deletions(-) diff --git a/resources/[inventory]/nordi_schredder/server.lua b/resources/[inventory]/nordi_schredder/server.lua index f54c8ac68..256bf65ae 100644 --- a/resources/[inventory]/nordi_schredder/server.lua +++ b/resources/[inventory]/nordi_schredder/server.lua @@ -7,26 +7,13 @@ RegisterNetEvent('shredder:server:openInventory', function(shredderID) if not Player then return end - -- Check if the export exists and is working - if not exports['tgiann-inventory'] then - print("^1[SHREDDER ERROR]^7 tgiann-inventory export not found!") - TriggerClientEvent('QBCore:Notify', src, 'System Error: Inventory system not available', 'error') - return - end - - -- Try to open inventory with error handling - local success, err = pcall(function() - exports['tgiann-inventory']:OpenInventory(src, 'stash', shredderID, { - maxweight = 50000, -- 50kg max - slots = 20, -- 20 Slots - label = 'Müllschredder' - }) - end) - - if not success then - print("^1[SHREDDER ERROR]^7 Failed to open inventory: " .. tostring(err)) - TriggerClientEvent('QBCore:Notify', src, 'Failed to open inventory', 'error') - end + -- Use the correct export for opening inventory + -- According to docs: OpenInventory(src, invType, invId, invData, openType) + exports["tgiann-inventory"]:OpenInventory(src, "stash", shredderID, { + maxweight = 50000, -- 50kg max + slots = 20, -- 20 Slots + label = 'Müllschredder' + }) end) -- Items aus Schredder abrufen @@ -36,28 +23,12 @@ RegisterNetEvent('shredder:server:getItems', function(shredderID) if not Player then return end - -- Check if the export exists - if not exports['tgiann-inventory'] then - print("^1[SHREDDER ERROR]^7 tgiann-inventory export not found!") - TriggerClientEvent('QBCore:Notify', src, 'System Error: Inventory system not available', 'error') - return - end + -- Use the correct export for getting secondary inventory items + -- According to docs: GetSecondaryInventoryItems(invType, invName) + local items = exports["tgiann-inventory"]:GetSecondaryInventoryItems("stash", shredderID) - -- Try to get inventory with error handling - local items = {} - local success, err = pcall(function() - items = exports['tgiann-inventory']:GetInventory(shredderID) or {} - end) - - if not success then - print("^1[SHREDDER ERROR]^7 Failed to get inventory: " .. tostring(err)) - items = {} - end - - -- Check if items is nil and provide a default empty table - if items == nil then - items = {} - end + -- If items is nil, provide an empty table + if items == nil then items = {} end TriggerClientEvent('shredder:client:showMenu', src, items, shredderID) end) @@ -69,25 +40,11 @@ RegisterNetEvent('shredder:server:destroySingle', function(itemName, amount, slo if not Player then return end - -- Check if the export exists - if not exports['tgiann-inventory'] then - print("^1[SHREDDER ERROR]^7 tgiann-inventory export not found!") - TriggerClientEvent('QBCore:Notify', src, 'System Error: Inventory system not available', 'error') - return - end + -- Use the correct export for removing item from secondary inventory + -- According to docs: RemoveItemFromSecondaryInventory(invType, invName, item, amount, slot, metadata) + local success = exports["tgiann-inventory"]:RemoveItemFromSecondaryInventory("stash", shredderID, itemName, amount, slot) - -- Try to remove item with error handling - local success, result = pcall(function() - return exports['tgiann-inventory']:RemoveItemFromInventory(shredderID, itemName, amount, slot) - end) - - if not success then - print("^1[SHREDDER ERROR]^7 Failed to remove item: " .. tostring(result)) - TriggerClientEvent('QBCore:Notify', src, 'Failed to remove item', 'error') - return - end - - if result then + if success then -- Log für Admins print('^3[SHREDDER]^7 ' .. GetPlayerName(src) .. ' (' .. Player.PlayerData.citizenid .. ') hat ' .. amount .. 'x ' .. itemName .. ' vernichtet') @@ -99,7 +56,7 @@ RegisterNetEvent('shredder:server:destroySingle', function(itemName, amount, slo -- Menü neu laden Wait(1000) - TriggerEvent('shredder:server:getItems', src, shredderID) + TriggerServerEvent('shredder:server:getItems', shredderID) else TriggerClientEvent('QBCore:Notify', src, 'Fehler beim Vernichten des Items!', 'error') end @@ -112,26 +69,9 @@ RegisterNetEvent('shredder:server:destroyAll', function(shredderID) if not Player then return end - -- Check if the export exists - if not exports['tgiann-inventory'] then - print("^1[SHREDDER ERROR]^7 tgiann-inventory export not found!") - TriggerClientEvent('QBCore:Notify', src, 'System Error: Inventory system not available', 'error') - return - end + -- Use the correct export for getting secondary inventory items + local items = exports["tgiann-inventory"]:GetSecondaryInventoryItems("stash", shredderID) - -- Try to get inventory with error handling - local items = {} - local success, err = pcall(function() - items = exports['tgiann-inventory']:GetInventory(shredderID) or {} - end) - - if not success then - print("^1[SHREDDER ERROR]^7 Failed to get inventory: " .. tostring(err)) - TriggerClientEvent('QBCore:Notify', src, 'Failed to get inventory', 'error') - return - end - - -- Check if items is nil or empty if not items or next(items) == nil then TriggerClientEvent('QBCore:Notify', src, 'Der Schredder ist bereits leer!', 'error') return @@ -143,11 +83,9 @@ RegisterNetEvent('shredder:server:destroyAll', function(shredderID) -- Alle Items vernichten for slot, item in pairs(items) do if item and item.amount and item.amount > 0 then - local removeSuccess, removeResult = pcall(function() - return exports['tgiann-inventory']:RemoveItemFromInventory(shredderID, item.name, item.amount, slot) - end) - - if removeSuccess and removeResult then + -- Use the correct export for removing item from secondary inventory + local success = exports["tgiann-inventory"]:RemoveItemFromSecondaryInventory("stash", shredderID, item.name, item.amount, slot) + if success then table.insert(destroyedItems, {name = item.name, amount = item.amount}) totalItems = totalItems + item.amount end