local QBCore = exports['qb-core']:GetCoreObject() isLoggedIn = false PlayerJob = {} local onDuty = false RegisterNetEvent('QBCore:Client:OnPlayerLoaded') AddEventHandler('QBCore:Client:OnPlayerLoaded', function() QBCore.Functions.GetPlayerData(function(PlayerData) PlayerJob = PlayerData.job if PlayerData.job.onduty then if PlayerData.job.name == "beanmachine" then TriggerServerEvent("QBCore:ToggleDuty") end end end) end) RegisterNetEvent('QBCore:Client:OnJobUpdate') AddEventHandler('QBCore:Client:OnJobUpdate', function(JobInfo) PlayerJob = JobInfo onDuty = PlayerJob.onduty end) RegisterNetEvent('QBCore:Client:SetDuty') AddEventHandler('QBCore:Client:SetDuty', function(duty) onDuty = duty end) if Config.BlipEnable then Citizen.CreateThread(function() BeanMachine = AddBlipForCoord(-624.04, 238.67, 81.88) SetBlipSprite (BeanMachine, 89) SetBlipDisplay(BeanMachine, 4) SetBlipScale (BeanMachine, 0.5) SetBlipAsShortRange(BeanMachine, true) SetBlipColour(BeanMachine, 2) BeginTextCommandSetBlipName("STRING") AddTextComponentSubstringPlayerName("Bean Machine") EndTextCommandSetBlipName(BeanMachine) end) end RegisterNetEvent("alizadev-beanmach:DutyA") AddEventHandler("alizadev-beanmach:DutyA", function() TriggerServerEvent("QBCore:ToggleDuty") end) -- Tray Events RegisterNetEvent("alizadev-beanmach:Tray1") AddEventHandler("alizadev-beanmach:Tray1", function() TriggerEvent("inventory:client:SetCurrentStash", "beantray1") TriggerServerEvent("inventory:server:OpenInventory", "stash", "beantray1", { maxweight = 45000, slots = 10, }) end) RegisterNetEvent("alizadev-beanmach:Tray2") AddEventHandler("alizadev-beanmach:Tray2", function() TriggerEvent("inventory:client:SetCurrentStash", "beantray2") TriggerServerEvent("inventory:server:OpenInventory", "stash", "beantray2", { maxweight = 10000, slots = 6, }) end) RegisterNetEvent("alizadev-beanmach:Tray3") AddEventHandler("alizadev-beanmach:Tray3", function() TriggerEvent("inventory:client:SetCurrentStash", "beantray3") TriggerServerEvent("inventory:server:OpenInventory", "stash", "beantray3", { maxweight = 10000, slots = 6, }) end) RegisterNetEvent("alizadev-beanmach:Storage") AddEventHandler("alizadev-beanmach:Storage", function() TriggerEvent("inventory:client:SetCurrentStash", "beantorage") TriggerServerEvent("inventory:server:OpenInventory", "stash", "beanstorage", { maxweight = 250000, slots = 40, }) end) -- Foods RegisterNetEvent("alizadev-beanmach:CreateDonut") AddEventHandler("alizadev-beanmach:CreateDonut", function() if onDuty then QBCore.Functions.TriggerCallback('alizadev-beanmach:server:get:ingredientDonut', function(HasItems) if HasItems then QBCore.Functions.Progressbar("pickup_sla", Config.Locales["making_donut"], 7000, false, true, { disableMovement = true, disableCarMovement = true, disableMouse = false, disableCombat = true, }, { animDict = "mp_common", anim = "givetake1_a", flags = 8, }, {}, {}, function() -- Done TriggerServerEvent('alizadev-beanmach:server:removeItem', "sprinkles", 5) TriggerServerEvent('alizadev-beanmach:server:addItem', "donut", 5) QBCore.Functions.Notify(Config.Locales["made_donut"], "success") end, function() QBCore.Functions.Notify(Config.Locales["cancelled"], "error") end) else QBCore.Functions.Notify(Config.Locales["no_ingredients"], "error") end end) else QBCore.Functions.Notify(Config.Locales["must_be_clocked"], "error") end end) RegisterNetEvent("alizadev-beanmach:CreateCookie") AddEventHandler("alizadev-beanmach:CreateCookie", function() if onDuty then QBCore.Functions.TriggerCallback('alizadev-beanmach:server:get:ingredientCookie', function(HasItems) if HasItems then QBCore.Functions.Progressbar("pickup_sla", Config.Locales["making_cookie"], 7000, false, true, { disableMovement = true, disableCarMovement = true, disableMouse = false, disableCombat = true, }, { animDict = "mp_common", anim = "givetake1_a", flags = 8, }, {}, {}, function() -- Done TriggerServerEvent('alizadev-beanmach:server:removeItem', "chocolate", 5) TriggerServerEvent('alizadev-beanmach:server:addItem', "cookie", 5) QBCore.Functions.Notify(Config.Locales["made_cookie"], "success") end, function() QBCore.Functions.Notify(Config.Locales["cancelled"], "error") end) else QBCore.Functions.Notify(Config.Locales["no_ingredients"], "error") end end) else QBCore.Functions.Notify(Config.Locales["must_be_clocked"], "error") end end) RegisterNetEvent("alizadev-beanmach:CreateCroissant") AddEventHandler("alizadev-beanmach:CreateCroissant", function() if onDuty then QBCore.Functions.TriggerCallback('alizadev-beanmach:server:get:ingredientCroissant', function(HasItems) if HasItems then QBCore.Functions.Progressbar("pickup_sla", Config.Locales["making_croissant"], 7000, false, true, { disableMovement = true, disableCarMovement = true, disableMouse = false, disableCombat = true, }, { animDict = "mp_common", anim = "givetake1_a", flags = 8, }, {}, {}, function() -- Done TriggerServerEvent('alizadev-beanmach:server:removeItem', "milkbottle", 2) TriggerServerEvent('alizadev-beanmach:server:addItem', "croissant", 5) QBCore.Functions.Notify(Config.Locales["made_croissant"], "success") end, function() QBCore.Functions.Notify(Config.Locales["cancelled"], "error") end) else QBCore.Functions.Notify(Config.Locales["no_ingredients"], "error") end end) else QBCore.Functions.Notify(Config.Locales["must_be_clocked"], "error") end end) RegisterNetEvent("alizadev-beanmach:CreateChocolateCupcake") AddEventHandler("alizadev-beanmach:CreateChocolateCupcake", function() if onDuty then QBCore.Functions.TriggerCallback('alizadev-beanmach:server:get:ingredientChocolateCupcake', function(HasItems) if HasItems then QBCore.Functions.Progressbar("pickup_sla", Config.Locales["making_cupcake"], 7000, false, true, { disableMovement = true, disableCarMovement = true, disableMouse = false, disableCombat = true, }, { animDict = "mp_common", anim = "givetake1_a", flags = 8, }, {}, {}, function() -- Done TriggerServerEvent('alizadev-beanmach:server:removeItem', "chocolate", 7) TriggerServerEvent('alizadev-beanmach:server:addItem', "cupchocolate", 5) QBCore.Functions.Notify(Config.Locales["made_cupcake"], "success") end, function() QBCore.Functions.Notify(Config.Locales["cancelled"], "error") end) else QBCore.Functions.Notify(Config.Locales["no_ingredients"], "error") end end) else QBCore.Functions.Notify(Config.Locales["must_be_clocked"], "error") end end) -- Drinks RegisterNetEvent("alizadev-beanmach:CreateCafe") AddEventHandler("alizadev-beanmach:CreateCafe", function() if onDuty then QBCore.Functions.TriggerCallback('alizadev-beanmach:server:get:ingredientCafe', function(HasItems) if HasItems then QBCore.Functions.Progressbar("pickup_sla", Config.Locales["making_coffee"], 4000, false, true, { disableMovement = true, disableCarMovement = true, disableMouse = false, disableCombat = true, }, { animDict = "mp_common", anim = "givetake1_a", flags = 8, }, {}, {}, function() -- Done TriggerServerEvent('alizadev-beanmach:server:removeItem', "milkbottle", 1) TriggerServerEvent('alizadev-beanmach:server:removeItem', "cocabeans", 5) TriggerServerEvent('alizadev-beanmach:server:addItem', "bean-cafe", 1) QBCore.Functions.Notify(Config.Locales["made_coffee"], "success") end, function() QBCore.Functions.Notify(Config.Locales["cancelled"], "error") end) else QBCore.Functions.Notify(Config.Locales["no_ingredients"], "error") end end) else QBCore.Functions.Notify(Config.Locales["must_be_clocked"], "error") end end) RegisterNetEvent("alizadev-beanmach:CreateLatte") AddEventHandler("alizadev-beanmach:CreateLatte", function() if onDuty then QBCore.Functions.TriggerCallback('alizadev-beanmach:server:get:ingredientLatte', function(HasItems) if HasItems then QBCore.Functions.Progressbar("pickup_sla", Config.Locales["making_latte"], 4000, false, true, { disableMovement = true, disableCarMovement = true, disableMouse = false, disableCombat = true, }, { animDict = "mp_common", anim = "givetake1_a", flags = 8, }, {}, {}, function() -- Done TriggerServerEvent('alizadev-beanmach:server:removeItem', "milkbottle", 1) TriggerServerEvent('alizadev-beanmach:server:removeItem', "cocabeans", 5) TriggerServerEvent('alizadev-beanmach:server:addItem', "bean-latte", 1) QBCore.Functions.Notify(Config.Locales["made_latte"], "success") end, function() QBCore.Functions.Notify(Config.Locales["cancelled"], "error") end) else QBCore.Functions.Notify(Config.Locales["no_ingredients"], "error") end end) else QBCore.Functions.Notify(Config.Locales["must_be_clocked"], "error") end end) RegisterNetEvent("alizadev-beanmach:CreateCappuccino") AddEventHandler("alizadev-beanmach:CreateCappuccino", function() if onDuty then QBCore.Functions.TriggerCallback('alizadev-beanmach:server:get:ingredientCappuccino', function(HasItems) if HasItems then QBCore.Functions.Progressbar("pickup_sla", Config.Locales["making_cappuccino"], 4000, false, true, { disableMovement = true, disableCarMovement = true, disableMouse = false, disableCombat = true, }, { animDict = "mp_common", anim = "givetake1_a", flags = 8, }, {}, {}, function() -- Done TriggerServerEvent('alizadev-beanmach:server:removeItem', "milkbottle", 1) TriggerServerEvent('alizadev-beanmach:server:removeItem', "cocabeans", 3) TriggerServerEvent('alizadev-beanmach:server:addItem', "bean-cappuccino", 1) QBCore.Functions.Notify(Config.Locales["made_cappuccino"], "success") end, function() QBCore.Functions.Notify(Config.Locales["cancelled"], "error") end) else QBCore.Functions.Notify(Config.Locales["no_ingredients"], "error") end end) else QBCore.Functions.Notify(Config.Locales["must_be_clocked"], "error") end end) RegisterNetEvent("alizadev-beanmach:CreateMocha") AddEventHandler("alizadev-beanmach:CreateMocha", function() if onDuty then QBCore.Functions.TriggerCallback('alizadev-beanmach:server:get:ingredientMocha', function(HasItems) if HasItems then QBCore.Functions.Progressbar("pickup_sla", Config.Locales["making_mocha"], 4000, false, true, { disableMovement = true, disableCarMovement = true, disableMouse = false, disableCombat = true, }, { animDict = "mp_common", anim = "givetake1_a", flags = 8, }, {}, {}, function() -- Done TriggerServerEvent('alizadev-beanmach:server:removeItem', "milkbottle", 1) TriggerServerEvent('alizadev-beanmach:server:removeItem', "cocabeans", 3) TriggerServerEvent('alizadev-beanmach:server:removeItem', "whipcream", 1) TriggerServerEvent('alizadev-beanmach:server:addItem', "bean-mocha", 1) QBCore.Functions.Notify(Config.Locales["made_mocha"], "success") end, function() QBCore.Functions.Notify(Config.Locales["cancelled"], "error") end) else QBCore.Functions.Notify(Config.Locales["no_ingredients"], "error") end end) else QBCore.Functions.Notify(Config.Locales["must_be_clocked"], "error") end end) RegisterNetEvent("alizadev-beanmach:CreateCMilkshake") AddEventHandler("alizadev-beanmach:CreateCMilkshake", function() if onDuty then QBCore.Functions.TriggerCallback('alizadev-beanmach:server:get:ingredientCMilkshake', function(HasItems) if HasItems then QBCore.Functions.Progressbar("pickup_sla", Config.Locales["making_milkshake"], 4000, false, true, { disableMovement = true, disableCarMovement = true, disableMouse = false, disableCombat = true, }, { animDict = "mp_common", anim = "givetake1_a", flags = 8, }, {}, {}, function() -- Done TriggerServerEvent('alizadev-beanmach:server:removeItem', "milkbottle", 2) TriggerServerEvent('alizadev-beanmach:server:removeItem', "chocolate", 5) TriggerServerEvent('alizadev-beanmach:server:removeItem', "whipcream", 1) TriggerServerEvent('alizadev-beanmach:server:addItem', "bean-cmilkshake", 1) QBCore.Functions.Notify(Config.Locales["made_milkshake"], "success") end, function() QBCore.Functions.Notify(Config.Locales["cancelled"], "error") end) else QBCore.Functions.Notify(Config.Locales["no_ingredients"], "error") end end) else QBCore.Functions.Notify(Config.Locales["must_be_clocked"], "error") end end) RegisterNetEvent("alizadev-beanmach:CreateIcetea") AddEventHandler("alizadev-beanmach:CreateIcetea", function() if onDuty then QBCore.Functions.TriggerCallback('alizadev-beanmach:server:get:ingredientIcetea', function(HasItems) if HasItems then QBCore.Functions.Progressbar("pickup_sla", Config.Locales["making_icetea"], 4000, false, true, { disableMovement = true, disableCarMovement = true, disableMouse = false, disableCombat = true, }, { animDict = "mp_common", anim = "givetake1_a", flags = 8, }, {}, {}, function() -- Done TriggerServerEvent('alizadev-beanmach:server:removeItem', "teabag", 1) TriggerServerEvent('alizadev-beanmach:server:addItem', "bean-icetea", 1) QBCore.Functions.Notify(Config.Locales["made_icetea"], "success") end, function() QBCore.Functions.Notify(Config.Locales["cancelled"], "error") end) else QBCore.Functions.Notify(Config.Locales["no_ingredients"], "error") end end) else QBCore.Functions.Notify(Config.Locales["must_be_clocked"], "error") end end) RegisterNetEvent("alizadev-beanmach:shop") AddEventHandler("alizadev-beanmach:shop", function() TriggerServerEvent("inventory:server:OpenInventory", "shop", "beanmachine", Config.Items) end) -- Usable Items RegisterNetEvent('alizadev-beanmach:client:Drinkables') AddEventHandler('alizadev-beanmach:client:Drinkables', function() TriggerEvent('animations:client:EmoteCommandStart', {"coffee"}) QBCore.Functions.Progressbar('drink_something', Config.Locales["drinking"], 5000, false, true, { disableMovement = false, disableCarMovement = false, disableMouse = false, disableCombat = true, }, {}, {}, {}, function() TriggerServerEvent("QBCore:Server:SetMetaData", "thirst", QBCore.Functions.GetPlayerData().metadata["thirst"] + math.random(30,80)) TriggerServerEvent('hud:server:RelieveStress', math.random(10, 30)) TriggerEvent('animations:client:EmoteCommandStart', {"c"}) end) end) RegisterNetEvent('alizadev-beanmach:client:Eatables') AddEventHandler('alizadev-beanmach:client:Eatables', function() TriggerEvent('animations:client:EmoteCommandStart', {"donut"}) QBCore.Functions.Progressbar('eat_something', Config.Locales["eating"], 5000, false, true, { disableMovement = false, disableCarMovement = false, disableMouse = false, disableCombat = true, }, {}, {}, {}, function() TriggerServerEvent("QBCore:Server:SetMetaData", "hunger", QBCore.Functions.GetPlayerData().metadata["hunger"] + math.random(30, 80)) TriggerServerEvent('hud:server:RelieveStress', math.random(2, 4)) TriggerEvent('animations:client:EmoteCommandStart', {"c"}) end) end)