forked from Simnation/Main
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
|
||||||
end)
|
end)
|
||||||
|
|
||||||
-- NUI Callbacks
|
|
||||||
RegisterNUICallback('djInterfaceClosed', function(data, cb)
|
RegisterNUICallback('djInterfaceClosed', function(data, cb)
|
||||||
SetNuiFocus(false, false)
|
SetNuiFocus(false, false)
|
||||||
isUIOpen = false
|
isUIOpen = false
|
||||||
|
@ -199,9 +198,18 @@ RegisterNUICallback('djInterfaceClosed', function(data, cb)
|
||||||
-- Aktiviere alle Controls wieder
|
-- Aktiviere alle Controls wieder
|
||||||
EnableAllControlActions(0)
|
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')
|
cb('ok')
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
||||||
RegisterNUICallback('deckStateChanged', function(data, cb)
|
RegisterNUICallback('deckStateChanged', function(data, cb)
|
||||||
if Config.Debug then
|
if Config.Debug then
|
||||||
print(string.format('[DJ System] Deck %s %s: %s',
|
print(string.format('[DJ System] Deck %s %s: %s',
|
||||||
|
|
|
@ -1112,6 +1112,18 @@ function setupInterfaceControls() {
|
||||||
const header = document.querySelector('.dj-header');
|
const header = document.querySelector('.dj-header');
|
||||||
const resizeHandle = document.createElement('div');
|
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
|
// Erstelle Resize-Handle
|
||||||
resizeHandle.className = 'resize-handle';
|
resizeHandle.className = 'resize-handle';
|
||||||
resizeHandle.innerHTML = '<i class="fas fa-grip-lines-diagonal"></i>';
|
resizeHandle.innerHTML = '<i class="fas fa-grip-lines-diagonal"></i>';
|
||||||
|
@ -1163,16 +1175,16 @@ function setupInterfaceControls() {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Verbesserte Schließen-Funktion
|
// Verbesserte Schließen-Funktion
|
||||||
const closeBtn = document.querySelector('.close-btn');
|
// Korrigierte Schreibweise: close-btn ist die CSS-Klasse
|
||||||
if (closeBtn) {
|
const closeButton = document.querySelector('.close-btn');
|
||||||
closeBtn.addEventListener('click', function(e) {
|
if (closeButton) {
|
||||||
|
closeButton.addEventListener('click', function(e) {
|
||||||
closeDJInterface();
|
closeDJInterface();
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleDrag(e) {
|
function handleDrag(e) {
|
||||||
if (!isDragging) return;
|
if (!isDragging) return;
|
||||||
|
|
||||||
|
@ -1229,8 +1241,7 @@ function stopResize() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function closeDJInterface() {
|
function closeDJInterface() {
|
||||||
// Stoppe alle laufenden Prozesse
|
|
||||||
stopAllAudio();
|
|
||||||
|
|
||||||
// Entferne Event-Listener
|
// Entferne Event-Listener
|
||||||
document.removeEventListener('mousemove', handleDrag);
|
document.removeEventListener('mousemove', handleDrag);
|
||||||
|
@ -1245,9 +1256,11 @@ function closeDJInterface() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Benachrichtige FiveM
|
// 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() {
|
function stopAllAudio() {
|
||||||
|
@ -1542,3 +1555,37 @@ console.log('Z/X/C - Crossfader positions');
|
||||||
console.log('R - Toggle recording');
|
console.log('R - Toggle recording');
|
||||||
console.log('Space - Play/Pause current deck');
|
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