71 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
	
		
			2.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local QBCore = exports['qb-core']:GetCoreObject()
 | 
						|
 | 
						|
-- Debug-Funktion
 | 
						|
local function Debug(msg)
 | 
						|
    print("^2[Grill Debug] ^7" .. msg)
 | 
						|
end
 | 
						|
 | 
						|
-- Function to check if player has an item
 | 
						|
local function HasItem(source, itemName, amount)
 | 
						|
    local itemCount = exports["tgiann-inventory"]:GetItemCount(source, itemName)
 | 
						|
    return itemCount >= amount
 | 
						|
end
 | 
						|
 | 
						|
-- Event for client to check if player has an item
 | 
						|
RegisterNetEvent('nordi_bbq:checkItem', function(itemName, amount, callbackEvent)
 | 
						|
    local src = source
 | 
						|
    local hasItem = HasItem(src, itemName, amount)
 | 
						|
    TriggerClientEvent(callbackEvent, src, hasItem)
 | 
						|
end)
 | 
						|
 | 
						|
-- Event zum Geben des gegrillten Essens
 | 
						|
RegisterNetEvent('nordi_bbq:server:GiveGrilledFood', function(itemName, requirements)
 | 
						|
    local src = source
 | 
						|
    local Player = QBCore.Functions.GetPlayer(src)
 | 
						|
    
 | 
						|
    if not Player then
 | 
						|
        Debug("Spieler nicht gefunden")
 | 
						|
        return
 | 
						|
    end
 | 
						|
    
 | 
						|
    -- Überprüfe, ob das Item in den erlaubten Rezepten ist
 | 
						|
    local validRecipe = false
 | 
						|
    for _, recipe in pairs(Config.GrillRecipes) do
 | 
						|
        if recipe.item == itemName then
 | 
						|
            validRecipe = true
 | 
						|
            break
 | 
						|
        end
 | 
						|
    end
 | 
						|
    
 | 
						|
    if not validRecipe then
 | 
						|
        Debug("Ungültiges Rezept: " .. itemName)
 | 
						|
        TriggerClientEvent('QBCore:Notify', src, "Fehler beim Grillen!", "error")
 | 
						|
        return
 | 
						|
    end
 | 
						|
    
 | 
						|
    -- Überprüfe Zutaten
 | 
						|
    local hasAllItems = true
 | 
						|
    for _, requirement in pairs(requirements) do
 | 
						|
        if not HasItem(src, requirement.item, requirement.amount) then
 | 
						|
            hasAllItems = false
 | 
						|
            break
 | 
						|
        end
 | 
						|
    end
 | 
						|
    
 | 
						|
    if hasAllItems then
 | 
						|
        -- Entferne Zutaten
 | 
						|
        for _, requirement in pairs(requirements) do
 | 
						|
            exports["tgiann-inventory"]:RemoveItem(src, requirement.item, requirement.amount)
 | 
						|
            TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[requirement.item], "remove")
 | 
						|
        end
 | 
						|
        
 | 
						|
        -- Gib das fertige Essen
 | 
						|
        exports["tgiann-inventory"]:AddItem(src, itemName, 1)
 | 
						|
        TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[itemName], "add")
 | 
						|
        
 | 
						|
        local itemLabel = QBCore.Shared.Items[itemName] and QBCore.Shared.Items[itemName].label or itemName
 | 
						|
        TriggerClientEvent('QBCore:Notify', src, "Du hast " .. itemLabel .. " gegrillt!", "success")
 | 
						|
    else
 | 
						|
        TriggerClientEvent('QBCore:Notify', src, "Du hast nicht alle benötigten Zutaten!", "error")
 | 
						|
    end
 | 
						|
end)
 |