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

70 lines
2.8 KiB
Lua
Raw Normal View History

2025-06-07 08:51:21 +02:00
local QBCore = exports['qb-core']:GetCoreObject()
-- Debug Print Funktion
local function Debug(msg)
print("^2[Coffee Debug] ^7" .. msg)
end
2025-07-11 13:04:23 +02:00
-- Function to check if player has an item
local function HasItem(source, itemName, amount)
2025-07-13 23:02:08 +02:00
local itemCount = exports["tgiann-inventory"]:GetItemCount(source, itemName)
return itemCount >= amount
2025-07-11 13:04:23 +02:00
end
-- Event for client to check if player has an item
RegisterNetEvent('coffee-script:checkItem', function(itemName, amount, callbackEvent)
local src = source
local hasItem = HasItem(src, itemName, amount)
TriggerClientEvent(callbackEvent, src, hasItem)
end)
2025-06-07 08:51:21 +02:00
RegisterNetEvent('coffee-script:giveCoffee')
AddEventHandler('coffee-script:giveCoffee', function(itemName, requirements)
Debug("Give coffee event triggered")
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if Player then
-- Überprüfe ob das Item in den erlaubten Kaffee-Optionen ist
local isValidItem = false
for _, coffee in ipairs(Config.CoffeeOptions) do
if coffee.item == itemName then
isValidItem = true
break
end
end
if isValidItem then
Debug("Valid coffee item requested")
-- Überprüfe nochmal die Zutaten
local hasAllItems = true
for _, requirement in ipairs(requirements) do
2025-07-11 13:04:23 +02:00
if not HasItem(src, requirement.item, requirement.amount) then
2025-06-07 08:51:21 +02:00
hasAllItems = false
break
end
end
if hasAllItems then
Debug("Player has all required items")
-- Entferne die benötigten Items
for _, requirement in ipairs(requirements) do
2025-07-11 13:04:23 +02:00
exports["tgiann-inventory"]:RemoveItem(src, requirement.item, requirement.amount)
2025-06-07 08:51:21 +02:00
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[requirement.item], "remove")
end
-- Gebe das fertige Getränk
2025-07-11 13:04:23 +02:00
exports["tgiann-inventory"]:AddItem(src, itemName, 1)
2025-06-07 08:51:21 +02:00
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[itemName], "add")
TriggerClientEvent('QBCore:Notify', src, "Du hast einen " .. QBCore.Shared.Items[itemName].label .. " zubereitet!", "success")
else
Debug("Player missing required items")
TriggerClientEvent('QBCore:Notify', src, "Du hast nicht alle benötigten Zutaten!", "error")
end
else
Debug("Invalid coffee item requested: " .. itemName)
TriggerClientEvent('QBCore:Notify', src, "Fehler bei der Kaffeezubereitung!", "error")
end
end
end)