forked from Simnation/Main
ed
This commit is contained in:
parent
9a29e35e64
commit
cac2b97954
4 changed files with 338 additions and 360 deletions
|
@ -360,54 +360,61 @@ local function useAlternativeConversion(originalUrl, videoId, callback)
|
|||
end)
|
||||
end
|
||||
|
||||
-- Aktualisiere die PlayMusic Funktion
|
||||
-- Aktualisierte PlayMusic Funktion
|
||||
RegisterServerEvent('dj:playMusic')
|
||||
AddEventHandler('dj:playMusic', function(title, url, volume)
|
||||
local src = source
|
||||
local Player = QBCore.Functions.GetPlayer(src)
|
||||
if not Player then return end
|
||||
|
||||
print('[DJ System] Spiele Musik ab: ' .. title .. ' | URL: ' .. url)
|
||||
|
||||
-- Prüfe ob es eine YouTube URL ist
|
||||
if string.match(url, "youtube%.com") or string.match(url, "youtu%.be") then
|
||||
convertYouTubeUrl(url, function(convertedUrl, error)
|
||||
if error then
|
||||
TriggerClientEvent('QBCore:Notify', src, 'Fehler beim Konvertieren: ' .. error, 'error')
|
||||
return
|
||||
end
|
||||
|
||||
if convertedUrl then
|
||||
-- Sende konvertierte URL an alle Clients
|
||||
TriggerClientEvent('dj:playMusicClient', -1, title, convertedUrl, volume)
|
||||
|
||||
-- Speichere in Session History
|
||||
MySQL.Async.execute('INSERT INTO dj_session_history (dj_citizenid, dj_name, booth_name, song_title, song_url, song_type, volume, session_start) VALUES (?, ?, ?, ?, ?, ?, ?, NOW())', {
|
||||
Player.PlayerData.citizenid,
|
||||
Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname,
|
||||
'Unknown', -- Du kannst hier den Booth-Namen hinzufügen
|
||||
title,
|
||||
url,
|
||||
'youtube',
|
||||
volume
|
||||
})
|
||||
else
|
||||
TriggerClientEvent('QBCore:Notify', src, 'Konvertierung fehlgeschlagen', 'error')
|
||||
end
|
||||
end)
|
||||
else
|
||||
-- Direkte Audio URL
|
||||
TriggerClientEvent('dj:playMusicClient', -1, title, url, volume)
|
||||
-- Bereinige YouTube URL (entferne Playlist-Parameter)
|
||||
local cleanUrl = url
|
||||
if string.find(url, "youtube%.com") or string.find(url, "youtu%.be") then
|
||||
-- Entferne &list= und andere Parameter
|
||||
cleanUrl = string.gsub(url, "&list=.-$", "")
|
||||
cleanUrl = string.gsub(cleanUrl, "&start_radio=.-$", "")
|
||||
cleanUrl = string.gsub(cleanUrl, "&index=.-$", "")
|
||||
|
||||
-- Speichere in Session History
|
||||
MySQL.Async.execute('INSERT INTO dj_session_history (dj_citizenid, dj_name, booth_name, song_title, song_url, song_type, volume, session_start) VALUES (?, ?, ?, ?, ?, ?, ?, NOW())', {
|
||||
Player.PlayerData.citizenid,
|
||||
Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname,
|
||||
'Unknown',
|
||||
title,
|
||||
url,
|
||||
'direct',
|
||||
volume
|
||||
})
|
||||
print('[DJ System] Bereinigte YouTube URL: ' .. cleanUrl)
|
||||
end
|
||||
|
||||
print('[DJ System] Streaming: ' .. title .. ' | URL: ' .. cleanUrl)
|
||||
|
||||
-- Sende direkt an alle Clients zum Streamen
|
||||
TriggerClientEvent('dj:playMusicClient', -1, title, cleanUrl, volume)
|
||||
|
||||
-- Speichere in Datenbank
|
||||
local songType = 'direct'
|
||||
if string.find(cleanUrl, "youtube") then
|
||||
songType = 'youtube'
|
||||
end
|
||||
|
||||
MySQL.Async.execute('INSERT INTO dj_session_history (dj_citizenid, dj_name, booth_name, song_title, song_url, song_type, volume, session_start) VALUES (?, ?, ?, ?, ?, ?, ?, NOW())', {
|
||||
Player.PlayerData.citizenid,
|
||||
Player.PlayerData.charinfo.firstname .. ' ' .. Player.PlayerData.charinfo.lastname,
|
||||
'DJ Booth',
|
||||
title,
|
||||
cleanUrl,
|
||||
songType,
|
||||
volume
|
||||
})
|
||||
|
||||
TriggerClientEvent('QBCore:Notify', src, 'Streaming: ' .. title, 'success')
|
||||
end)
|
||||
|
||||
-- Audio Error Handler
|
||||
RegisterNUICallback('audioError', function(data, cb)
|
||||
local src = source
|
||||
print('[DJ System] Audio Error: ' .. (data.error or 'Unknown'))
|
||||
|
||||
TriggerClientEvent('QBCore:Notify', src, 'Audio Fehler: ' .. (data.error or 'Unbekannt'), 'error')
|
||||
cb('ok')
|
||||
end)
|
||||
|
||||
-- Song Ended Handler
|
||||
RegisterNUICallback('songEnded', function(data, cb)
|
||||
print('[DJ System] Song ended')
|
||||
-- Hier könntest du Playlist-Logik hinzufügen
|
||||
cb('ok')
|
||||
end)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue