1
0
Fork 0
forked from Simnation/Main
Main/resources/[inventory]/nordi_bbq/server.lua

84 lines
2.7 KiB
Lua
Raw Normal View History

2025-06-18 02:30:02 +02:00
local QBCore = exports['qb-core']:GetCoreObject()
2025-06-18 06:13:19 +02:00
-- Debug-Funktion
2025-06-18 02:30:02 +02:00
local function Debug(msg)
2025-06-18 05:39:08 +02:00
print("^2[Grill Debug] ^7" .. msg)
2025-06-18 02:30:02 +02:00
end
2025-07-11 12:54:10 +02:00
-- Function to check if player has an item
local function HasItem(source, itemName, amount)
local items = exports["tgiann-inventory"]:GetPlayerItems(source)
if not items then return false end
local count = 0
for _, item in pairs(items) do
if item.name == itemName then
count = count + item.count
if count >= amount then
return true
end
end
end
return false
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)
2025-06-18 06:13:19 +02:00
-- Event zum Geben des gegrillten Essens
RegisterNetEvent('nordi_bbq:server:GiveGrilledFood', function(itemName, requirements)
2025-06-18 02:30:02 +02:00
local src = source
local Player = QBCore.Functions.GetPlayer(src)
2025-06-18 06:13:19 +02:00
2025-06-18 05:39:08 +02:00
if not Player then
2025-06-18 06:13:19 +02:00
Debug("Spieler nicht gefunden")
2025-06-18 05:39:08 +02:00
return
end
2025-06-18 06:13:19 +02:00
-- Ü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
2025-06-18 05:39:08 +02:00
break
end
end
2025-06-18 06:13:19 +02:00
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
2025-07-11 12:54:10 +02:00
if not HasItem(src, requirement.item, requirement.amount) then
2025-06-18 06:13:19 +02:00
hasAllItems = false
break
2025-06-18 02:30:02 +02:00
end
2025-06-18 06:13:19 +02:00
end
if hasAllItems then
-- Entferne Zutaten
for _, requirement in pairs(requirements) do
2025-07-11 12:54:10 +02:00
exports["tgiann-inventory"]:RemoveItem(src, requirement.item, requirement.amount)
2025-06-18 06:13:19 +02:00
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[requirement.item], "remove")
2025-06-18 02:30:02 +02:00
end
2025-06-18 06:13:19 +02:00
-- Gib das fertige Essen
2025-07-11 12:54:10 +02:00
exports["tgiann-inventory"]:AddItem(src, itemName, 1)
2025-06-18 06:13:19 +02:00
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")
2025-06-18 05:39:08 +02:00
else
2025-06-18 06:13:19 +02:00
TriggerClientEvent('QBCore:Notify', src, "Du hast nicht alle benötigten Zutaten!", "error")
2025-06-18 02:30:02 +02:00
end
end)