ed
This commit is contained in:
		
							parent
							
								
									0796557bb6
								
							
						
					
					
						commit
						585ee069c2
					
				
					 2 changed files with 64 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -188,7 +188,6 @@ RegisterNetEvent('dj:client:receiveActiveDJs', function(booths)
 | 
			
		|||
    end
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
-- NUI Callbacks
 | 
			
		||||
RegisterNUICallback('djInterfaceClosed', function(data, cb)
 | 
			
		||||
    SetNuiFocus(false, false)
 | 
			
		||||
    isUIOpen = false
 | 
			
		||||
| 
						 | 
				
			
			@ -199,9 +198,18 @@ RegisterNUICallback('djInterfaceClosed', function(data, cb)
 | 
			
		|||
    -- Aktiviere alle Controls wieder
 | 
			
		||||
    EnableAllControlActions(0)
 | 
			
		||||
    
 | 
			
		||||
    -- Musik NICHT stoppen, wenn stopMusic nicht explizit true ist
 | 
			
		||||
    if data.stopMusic then
 | 
			
		||||
        -- Stoppe Musik nur wenn explizit angefordert
 | 
			
		||||
        if currentBooth then
 | 
			
		||||
            TriggerServerEvent('dj:server:stopMusic', currentBooth.name)
 | 
			
		||||
        end
 | 
			
		||||
    end
 | 
			
		||||
    
 | 
			
		||||
    cb('ok')
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
RegisterNUICallback('deckStateChanged', function(data, cb)
 | 
			
		||||
    if Config.Debug then
 | 
			
		||||
        print(string.format('[DJ System] Deck %s %s: %s', 
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1112,6 +1112,18 @@ function setupInterfaceControls() {
 | 
			
		|||
    const header = document.querySelector('.dj-header');
 | 
			
		||||
    const resizeHandle = document.createElement('div');
 | 
			
		||||
    
 | 
			
		||||
    // Verbesserte Schließen-Funktion
 | 
			
		||||
    const closeBtn = document.querySelector('.close-btn');
 | 
			
		||||
    if (closeBtn) {
 | 
			
		||||
        closeBtn.addEventListener('click', function(e) {
 | 
			
		||||
            // Nur Interface schließen, Musik weiterlaufen lassen
 | 
			
		||||
            closeDJInterface();
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            e.stopPropagation();
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    // Erstelle Resize-Handle
 | 
			
		||||
    resizeHandle.className = 'resize-handle';
 | 
			
		||||
    resizeHandle.innerHTML = '<i class="fas fa-grip-lines-diagonal"></i>';
 | 
			
		||||
| 
						 | 
				
			
			@ -1163,16 +1175,16 @@ function setupInterfaceControls() {
 | 
			
		|||
    });
 | 
			
		||||
    
 | 
			
		||||
    // Verbesserte Schließen-Funktion
 | 
			
		||||
    const closeBtn = document.querySelector('.close-btn');
 | 
			
		||||
    if (closeBtn) {
 | 
			
		||||
        closeBtn.addEventListener('click', function(e) {
 | 
			
		||||
    // Korrigierte Schreibweise: close-btn ist die CSS-Klasse
 | 
			
		||||
    const closeButton = document.querySelector('.close-btn');
 | 
			
		||||
    if (closeButton) {
 | 
			
		||||
        closeButton.addEventListener('click', function(e) {
 | 
			
		||||
            closeDJInterface();
 | 
			
		||||
            e.preventDefault();
 | 
			
		||||
            e.stopPropagation();
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function handleDrag(e) {
 | 
			
		||||
    if (!isDragging) return;
 | 
			
		||||
    
 | 
			
		||||
| 
						 | 
				
			
			@ -1229,8 +1241,7 @@ function stopResize() {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
function closeDJInterface() {
 | 
			
		||||
    // Stoppe alle laufenden Prozesse
 | 
			
		||||
    stopAllAudio();
 | 
			
		||||
 | 
			
		||||
    
 | 
			
		||||
    // Entferne Event-Listener
 | 
			
		||||
    document.removeEventListener('mousemove', handleDrag);
 | 
			
		||||
| 
						 | 
				
			
			@ -1245,9 +1256,11 @@ function closeDJInterface() {
 | 
			
		|||
    }
 | 
			
		||||
    
 | 
			
		||||
    // Benachrichtige FiveM
 | 
			
		||||
    notifyFiveM('djInterfaceClosed', {});
 | 
			
		||||
    notifyFiveM('djInterfaceClosed', {
 | 
			
		||||
        stopMusic: false // Wichtig: Teile FiveM mit, dass die Musik weiterlaufen soll
 | 
			
		||||
    });
 | 
			
		||||
    
 | 
			
		||||
    console.log('DJ System: Interface closed');
 | 
			
		||||
    console.log('DJ System: Interface closed, music continues playing');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function stopAllAudio() {
 | 
			
		||||
| 
						 | 
				
			
			@ -1542,3 +1555,37 @@ console.log('Z/X/C - Crossfader positions');
 | 
			
		|||
console.log('R - Toggle recording');
 | 
			
		||||
console.log('Space - Play/Pause current deck');
 | 
			
		||||
 | 
			
		||||
// In script.js - Separate Funktion zum Stoppen der Musik
 | 
			
		||||
function stopAllAudioAndCloseInterface() {
 | 
			
		||||
    // Stoppe YouTube-Player
 | 
			
		||||
    for (const deck of ['A', 'B']) {
 | 
			
		||||
        if (djInterface.decks[deck].youtubePlayer) {
 | 
			
		||||
            try {
 | 
			
		||||
                djInterface.decks[deck].youtubePlayer.stopVideo();
 | 
			
		||||
            } catch (e) {
 | 
			
		||||
                console.error(`DJ System: Error stopping YouTube player for Deck ${deck}`, e);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        // Stoppe Audio-Player
 | 
			
		||||
        if (djInterface.decks[deck].player) {
 | 
			
		||||
            try {
 | 
			
		||||
                djInterface.decks[deck].player.pause();
 | 
			
		||||
                djInterface.decks[deck].player.currentTime = 0;
 | 
			
		||||
            } catch (e) {
 | 
			
		||||
                console.error(`DJ System: Error stopping audio player for Deck ${deck}`, e);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        // Reset Deck-Status
 | 
			
		||||
        djInterface.decks[deck].isPlaying = false;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    // Schließe Interface
 | 
			
		||||
    closeDJInterface();
 | 
			
		||||
    
 | 
			
		||||
    // Benachrichtige FiveM, dass die Musik gestoppt werden soll
 | 
			
		||||
    notifyFiveM('djInterfaceClosed', {
 | 
			
		||||
        stopMusic: true
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue