-- Variables local QBCore = exports['qb-core']:GetCoreObject() local currentZone = nil local PlayerData = {} -- Handlers AddEventHandler('onResourceStart', function(resourceName) if (GetCurrentResourceName() ~= resourceName) then return end PlayerData = QBCore.Functions.GetPlayerData() end) AddEventHandler('QBCore:Client:OnPlayerLoaded', function() PlayerData = QBCore.Functions.GetPlayerData() end) RegisterNetEvent('QBCore:Client:OnJobUpdate', function(JobInfo) PlayerData.job = JobInfo end) RegisterNetEvent('QBCore:Client:OnPlayerUnload', function() PlayerData = {} end) -- Static Header local musicHeader = { { header = 'Spil musik!', params = { event = 'qb-djbooth:client:playMusic' } } } -- Main Menu function createMusicMenu() musicMenu = { { isHeader = true, header = '💿 | DJ bås' }, { header = '🎶 | Spil en sang', txt = 'Youtube URL', params = { event = 'qb-djbooth:client:musicMenu', args = { zoneName = currentZone } } }, { header = '⏸️ | Pause Musik', txt = 'Pause musikken', params = { isServer = true, event = 'qb-djbooth:server:pauseMusic', args = { zoneName = currentZone } } }, { header = '▶️ | Start musik', txt = 'Start musikken', params = { isServer = true, event = 'qb-djbooth:server:resumeMusic', args = { zoneName = currentZone } } }, { header = '🔈 | Skift Volume', txt = 'Skift musik volumen', params = { event = 'qb-djbooth:client:changeVolume', args = { zoneName = currentZone } } }, { header = '❌ | Sluk musik', txt = 'Sluk musikken', params = { isServer = true, event = 'qb-djbooth:server:stopMusic', args = { zoneName = currentZone } } } } end -- DJ Booths local vanilla = BoxZone:Create(Config.Locations['vanilla'].coords, 1, 1, { name="vanilla", heading=0 }) vanilla:onPlayerInOut(function(isPointInside) if isPointInside and PlayerData.job.name == Config.Locations['vanilla'].job then currentZone = 'vanilla' exports['qb-menu']:showHeader(musicHeader) else currentZone = nil exports['qb-menu']:closeMenu() end end) -- Events RegisterNetEvent('qb-djbooth:client:playMusic', function() createMusicMenu() exports['qb-menu']:openMenu(musicMenu) end) RegisterNetEvent('qb-djbooth:client:musicMenu', function() local dialog = exports['qb-input']:ShowInput({ header = 'Sang valg', submitText = "Send", inputs = { { type = 'text', isRequired = true, name = 'sang', text = 'YouTube URL' } } }) if dialog then if not dialog.song then return end TriggerServerEvent('qb-djbooth:server:playMusic', dialog.song, currentZone) end end) RegisterNetEvent('qb-djbooth:client:changeVolume', function() local dialog = exports['qb-input']:ShowInput({ header = 'Musik Volume', submitText = "Gen", inputs = { { type = 'text', -- number doesn't accept decimals?? isRequired = true, name = 'Volume', text = 'Min: 0.01 - Max: 1' } } }) if dialog then if not dialog.volume then return end TriggerServerEvent('qb-djbooth:server:changeVolume', dialog.volume, currentZone) end end)