mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-08-29 16:19:36 +01:00
Merge pull request #2424 from Shadowfire117/Casinocaretaking
Jukeboxes repaired and 350 new songs
This commit is contained in:
@@ -2,13 +2,16 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
name = "Media Tracks"
|
||||
flags = SS_NO_FIRE
|
||||
init_order = INIT_ORDER_MEDIA_TRACKS
|
||||
|
||||
|
||||
/// Every track, including secret
|
||||
var/list/all_tracks = list()
|
||||
/// Non-secret jukebox tracks
|
||||
var/list/jukebox_tracks = list()
|
||||
/// Lobby music tracks
|
||||
var/list/lobby_tracks = list()
|
||||
/// CHOMPstation edit start: Jack - Injecting casino track into new jukebox subsystem
|
||||
var/list/casino_tracks = list()
|
||||
/// CHOMPstation edit end
|
||||
|
||||
/datum/controller/subsystem/media_tracks/Initialize(timeofday)
|
||||
load_tracks()
|
||||
@@ -18,19 +21,19 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
/datum/controller/subsystem/media_tracks/proc/load_tracks()
|
||||
for(var/filename in config.jukebox_track_files)
|
||||
report_progress("Loading jukebox track: [filename]")
|
||||
|
||||
|
||||
if(!fexists(filename))
|
||||
error("File not found: [filename]")
|
||||
continue
|
||||
|
||||
|
||||
var/list/jsonData = json_decode(file2text(filename))
|
||||
|
||||
|
||||
if(!istype(jsonData))
|
||||
error("Failed to read tracks from [filename], json_decode failed.")
|
||||
continue
|
||||
|
||||
|
||||
for(var/entry in jsonData)
|
||||
|
||||
|
||||
// Critical problems that will prevent the track from working
|
||||
if(!istext(entry["url"]))
|
||||
error("Jukebox entry in [filename]: bad or missing 'url'. Tracks must have a URL.")
|
||||
@@ -47,32 +50,43 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
warning("Jukebox entry in [filename], [entry["title"]]: bad or missing 'artist'. Please consider crediting the artist.")
|
||||
if(!istext(entry["genre"]))
|
||||
warning("Jukebox entry in [filename], [entry["title"]]: bad or missing 'genre'. Please consider adding a genre.")
|
||||
|
||||
|
||||
var/datum/track/T = new(entry["url"], entry["title"], entry["duration"], entry["artist"], entry["genre"])
|
||||
|
||||
|
||||
T.secret = entry["secret"] ? 1 : 0
|
||||
T.lobby = entry["lobby"] ? 1 : 0
|
||||
|
||||
|
||||
/// CHOMPstation edit start: Jack - Injecting casino track into new jukebox subsystem
|
||||
T.casino = entry["casino"] ? 1 : 0
|
||||
/// CHOMPstation edit end
|
||||
|
||||
all_tracks += T
|
||||
|
||||
/datum/controller/subsystem/media_tracks/proc/sort_tracks()
|
||||
report_progress("Sorting media tracks...")
|
||||
sortTim(all_tracks, /proc/cmp_media_track_asc)
|
||||
|
||||
|
||||
jukebox_tracks.Cut()
|
||||
lobby_tracks.Cut()
|
||||
|
||||
/// CHOMPstation edit start: Jack - Injecting casino track into new jukebox subsystem
|
||||
casino_tracks.Cut()
|
||||
/// CHOMPstation edit end
|
||||
|
||||
for(var/datum/track/T in all_tracks)
|
||||
if(!T.secret)
|
||||
/// CHOMPstation edit start: Jack - Injecting casino track into new jukebox subsystem
|
||||
if(!T.secret && !T.casino)
|
||||
jukebox_tracks += T
|
||||
if(T.lobby)
|
||||
lobby_tracks += T
|
||||
if(T.casino)
|
||||
casino_tracks += T
|
||||
/// CHOMPstation edit end
|
||||
|
||||
/datum/controller/subsystem/media_tracks/proc/manual_track_add()
|
||||
var/client/C = usr.client
|
||||
if(!check_rights(R_DEBUG|R_FUN))
|
||||
return
|
||||
|
||||
|
||||
// Required
|
||||
var/url = input(C, "REQUIRED: Provide URL for track, or paste JSON if you know what you're doing. See code comments.", "Track URL") as message|null
|
||||
if(!url)
|
||||
@@ -94,8 +108,9 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
* "genre": artist of the song, REALLY try to match an existing one (text)
|
||||
* "secret": only on hacked jukeboxes (true/false)
|
||||
* "lobby": plays in the lobby (true/false)
|
||||
* "casino": plays in the casino (true/false) CHOMPstation casino
|
||||
*/
|
||||
|
||||
|
||||
if(islist(json))
|
||||
for(var/song in json)
|
||||
if(!islist(song))
|
||||
@@ -104,18 +119,18 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
var/list/songdata = song
|
||||
if(!songdata["url"] || !songdata["title"] || !songdata["duration"])
|
||||
to_chat(C, "<span class='warning'>URL, Title, or Duration was missing from a song. Skipping.</span>")
|
||||
continue
|
||||
var/datum/track/T = new(songdata["url"], songdata["title"], songdata["duration"], songdata["artist"], songdata["genre"], songdata["secret"], songdata["lobby"])
|
||||
continue
|
||||
var/datum/track/T = new(songdata["url"], songdata["title"], songdata["duration"], songdata["artist"], songdata["genre"], songdata["secret"], songdata["lobby"], songdata["casino"])
|
||||
all_tracks += T
|
||||
|
||||
|
||||
report_progress("New media track added by [C]: [T.title]")
|
||||
sort_tracks()
|
||||
return
|
||||
|
||||
|
||||
var/title = input(C, "REQUIRED: Provide title for track", "Track Title") as text|null
|
||||
if(!title)
|
||||
return
|
||||
|
||||
|
||||
var/duration = input(C, "REQUIRED: Provide duration for track (in deciseconds, aka seconds*10)", "Track Duration") as num|null
|
||||
if(!duration)
|
||||
return
|
||||
@@ -124,11 +139,11 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
var/artist = input(C, "Optional: Provide artist for track", "Track Artist") as text|null
|
||||
if(isnull(artist)) // Cancel rather than empty string
|
||||
return
|
||||
|
||||
|
||||
var/genre = input(C, "Optional: Provide genre for track (try to match an existing one)", "Track Genre") as text|null
|
||||
if(isnull(genre)) // Cancel rather than empty string
|
||||
return
|
||||
|
||||
|
||||
var/secret = tgui_alert(C, "Optional: Mark track as secret?", "Track Secret", list("Yes", "Cancel", "No"))
|
||||
if(secret == "Cancel")
|
||||
return
|
||||
@@ -136,7 +151,7 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
secret = TRUE
|
||||
else
|
||||
secret = FALSE
|
||||
|
||||
|
||||
var/lobby = tgui_alert(C, "Optional: Mark track as lobby music?", "Track Lobby", list("Yes", "Cancel", "No"))
|
||||
if(lobby == "Cancel")
|
||||
return
|
||||
@@ -145,13 +160,26 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
else
|
||||
secret = FALSE
|
||||
|
||||
/// CHOMPstation edit start: Jack - Injecting casino track into new jukebox subsystem
|
||||
var/casino = tgui_alert(C, "Optional: Mark track as casino music?", "Track Casino", list("Yes", "Cancel", "No"))
|
||||
if(casino == "Cancel")
|
||||
return
|
||||
else if(secret == "Yes")
|
||||
secret = TRUE
|
||||
else
|
||||
secret = FALSE
|
||||
/// CHOMPstation edit end
|
||||
|
||||
var/datum/track/T = new(url, title, duration, artist, genre)
|
||||
|
||||
|
||||
T.secret = secret
|
||||
T.lobby = lobby
|
||||
|
||||
/// CHOMPstation edit start: Jack - Injecting casino track into new jukebox subsystem
|
||||
T.casino = casino
|
||||
/// CHOMPstation edit end
|
||||
|
||||
all_tracks += T
|
||||
|
||||
|
||||
report_progress("New media track added by [C]: [title]")
|
||||
sort_tracks()
|
||||
|
||||
@@ -163,7 +191,7 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
var/track = input(C, "Input track title or URL to remove (must be exact)", "Remove Track") as text|null
|
||||
if(!track)
|
||||
return
|
||||
|
||||
|
||||
for(var/datum/track/T in all_tracks)
|
||||
if(T.title == track || T.url == track)
|
||||
all_tracks -= T
|
||||
@@ -171,7 +199,7 @@ SUBSYSTEM_DEF(media_tracks)
|
||||
report_progress("Media track removed by [C]: [track]")
|
||||
sort_tracks()
|
||||
return
|
||||
|
||||
|
||||
to_chat(C, "<span class='warning>Couldn't find a track matching the specified parameters.</span>")
|
||||
|
||||
/datum/controller/subsystem/media_tracks/vv_get_dropdown()
|
||||
|
||||
@@ -179,7 +179,7 @@
|
||||
|
||||
/obj/machinery/media/jukebox/tgui_data(mob/user, datum/tgui/ui, datum/tgui_state/state)
|
||||
var/list/data = ..()
|
||||
|
||||
|
||||
data["playing"] = playing
|
||||
data["loop_mode"] = loop_mode
|
||||
data["volume"] = volume
|
||||
@@ -331,13 +331,13 @@
|
||||
/obj/machinery/media/jukebox/ghost
|
||||
name = "ghost jukebox"
|
||||
desc = "A jukebox from the nether-realms! Spooky."
|
||||
|
||||
|
||||
plane = PLANE_GHOSTS
|
||||
invisibility = INVISIBILITY_OBSERVER
|
||||
alpha = 127
|
||||
|
||||
|
||||
icon_state = "jukebox2-virtual"
|
||||
|
||||
|
||||
density = FALSE
|
||||
hacked = TRUE
|
||||
|
||||
@@ -348,7 +348,7 @@
|
||||
|
||||
// Just junk to make it sneaky - I wish a lot more stuff was on /obj/machinery/media instead of /jukebox so I could use that.
|
||||
/obj/machinery/media/jukebox/ghost/is_incorporeal()
|
||||
return TRUE
|
||||
return TRUE
|
||||
/obj/machinery/media/jukebox/ghost/audible_message(message, deaf_message, hearing_distance, radio_message, runemessage)
|
||||
return
|
||||
/obj/machinery/media/jukebox/ghost/visible_message(message, blind_message, list/exclude_mobs, range, runemessage)
|
||||
@@ -360,7 +360,7 @@
|
||||
/obj/machinery/media/jukebox/ghost/attack_hand(var/mob/user as mob)
|
||||
return
|
||||
/obj/machinery/media/jukebox/ghost/update_use_power(new_use_power)
|
||||
return
|
||||
return
|
||||
/obj/machinery/media/jukebox/ghost/power_change()
|
||||
return
|
||||
/obj/machinery/media/jukebox/ghost/emp_act(severity)
|
||||
@@ -368,7 +368,7 @@
|
||||
/obj/machinery/media/jukebox/ghost/emag_act(remaining_charges, mob/user)
|
||||
return
|
||||
/obj/machinery/media/jukebox/ghost/explode()
|
||||
return
|
||||
return
|
||||
/obj/machinery/media/jukebox/ghost/update_icon()
|
||||
if(playing)
|
||||
animate(src, alpha = 200, time = 5, loop = -1)
|
||||
@@ -394,16 +394,16 @@
|
||||
var/client/C = usr.client
|
||||
if(!check_rights(R_FUN|R_ADMIN))
|
||||
return
|
||||
|
||||
|
||||
// Required
|
||||
var/url = input(C, "REQUIRED: Provide URL for track", "Track URL") as text|null
|
||||
if(!url)
|
||||
return
|
||||
|
||||
|
||||
var/title = input(C, "REQUIRED: Provide title for track", "Track Title") as text|null
|
||||
if(!title)
|
||||
return
|
||||
|
||||
|
||||
var/duration = input(C, "REQUIRED: Provide duration for track (in deciseconds, aka seconds*10)", "Track Duration") as num|null
|
||||
if(!duration)
|
||||
return
|
||||
@@ -412,12 +412,12 @@
|
||||
var/artist = input(C, "Optional: Provide artist for track", "Track Artist") as text|null
|
||||
if(isnull(artist)) // Cancel rather than empty string
|
||||
return
|
||||
|
||||
|
||||
// So they're obvious and grouped
|
||||
var/genre = "! Admin Loaded !"
|
||||
|
||||
|
||||
custom_tracks += new /datum/track(url, title, duration, artist, genre)
|
||||
|
||||
|
||||
/obj/machinery/media/jukebox/ghost/proc/manual_track_remove()
|
||||
var/client/C = usr.client
|
||||
if(!check_rights(R_FUN|R_ADMIN))
|
||||
@@ -426,13 +426,13 @@
|
||||
var/track = input(C, "Input track title or URL to remove (must be exact)", "Remove Track") as text|null
|
||||
if(!track)
|
||||
return
|
||||
|
||||
|
||||
for(var/datum/track/T in custom_tracks)
|
||||
if(T.title == track || T.url == track)
|
||||
custom_tracks -= T
|
||||
qdel(T)
|
||||
return
|
||||
|
||||
|
||||
to_chat(C, "<span class='warning>Couldn't find a track matching the specified parameters.</span>")
|
||||
|
||||
/obj/machinery/media/jukebox/ghost/vv_get_dropdown()
|
||||
|
||||
@@ -1,23 +1,12 @@
|
||||
|
||||
/obj/machinery/media/jukebox/casinojukebox
|
||||
name = "space casino jukebox"
|
||||
desc = "A jukebox to play the tracks on the golden goose, jazzy~"
|
||||
icon = 'icons/obj/casino_ch.dmi'
|
||||
icon_state = "casinojukebox-nopower"
|
||||
state_base = "casinojukebox"
|
||||
|
||||
/* Commenting out for now due to conflicts with upstream jukebox changes.
|
||||
// On initialization, copy our tracks from the global list
|
||||
/obj/machinery/media/jukebox/casinojukebox/Initialize()
|
||||
. = ..()
|
||||
if(LAZYLEN(all_jukebox_tracks)) //Global list has tracks
|
||||
tracks.Cut()
|
||||
secret_tracks.Cut()
|
||||
for(var/datum/track/T in all_jukebox_tracks) //Load them
|
||||
if(!T.casino)
|
||||
tracks -= T
|
||||
secret_tracks -= T
|
||||
if(T.casino)
|
||||
tracks |= T
|
||||
else if(!LAZYLEN(tracks)) //We don't even have default tracks
|
||||
stat |= BROKEN // No tracks configured this round!
|
||||
*/
|
||||
use_power = USE_POWER_OFF
|
||||
|
||||
/obj/machinery/media/jukebox/casinojukebox/getTracksList()
|
||||
return SSmedia_tracks.casino_tracks
|
||||
@@ -3508,5 +3508,396 @@
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Rock"
|
||||
},
|
||||
{
|
||||
"url" : "https://cdn.discordapp.com/attachments/404660884531707906/676726491806957568/Cassette.mp3",
|
||||
"title" : "Cassette",
|
||||
"duration" : 2310,
|
||||
"artist" : "Efence",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Ambience"
|
||||
},
|
||||
{
|
||||
"url" : "https://cdn.discordapp.com/attachments/676384242426707979/676730040624480264/Glowing_Red_Dust.mp3",
|
||||
"title" : "Red Glowing Dust",
|
||||
"duration" : 3370,
|
||||
"artist" : "Jón Hallur Haraldsson (also known as RealX)",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Ambience"
|
||||
},
|
||||
{
|
||||
|
||||
"url" : "https://cdn.discordapp.com/attachments/676384242426707979/676730820530274323/Stellardrone_-_Eternity.mp3",
|
||||
"title" : "Eternity",
|
||||
"duration" : 3810,
|
||||
"artist" : "Stellardrone",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Ambience"
|
||||
},
|
||||
{
|
||||
"duration" : 4850,
|
||||
"url" : "https://cdn.discordapp.com/attachments/612993188655005697/676732888712216596/DJ-ZEK_-_Simulate.mp3",
|
||||
"title" : "Simulate",
|
||||
"artist" : "Fawxtrot (now know as DJ Zek)",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Ambience"
|
||||
},
|
||||
{
|
||||
"duration" : 13720,
|
||||
"url" : "https://cdn.discordapp.com/attachments/520929567540772873/707899715261562960/FitnessGram_20_Meter_PACER_Test_Full_Length_OFFICIAL_Audio_Version.mp3",
|
||||
"title" : "The FitnessGram Pacer Test",
|
||||
"artist" : "The Cooper Institute (FitnessGram)",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Ambience"
|
||||
},
|
||||
{
|
||||
"duration" : 2040,
|
||||
"url" : "https://cdn.discordapp.com/attachments/575066308362895444/701639140109844530/Peaceful_Orbits.mp3",
|
||||
"title" : "Peaceful Orbits",
|
||||
"artist" : "TeknoAXE",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Ambience"
|
||||
},
|
||||
{
|
||||
"duration" : 2300,
|
||||
"url" : "https://cdn.discordapp.com/attachments/575066308362895444/701639311896084511/Passing_Time_in_an_Escape_Pod.mp3",
|
||||
"title" : "Passing Time in an Escape Pod",
|
||||
"artist" : "TeknoAXE",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Ambience"
|
||||
},
|
||||
{
|
||||
"duration" : 2790,
|
||||
"url" : "https://cdn.discordapp.com/attachments/331435060735508480/613310956927451137/Persona_5_48_-_Beneath_the_Mask_-rain-.mp3",
|
||||
"title" : "Beneath the Mask -Rain Version-",
|
||||
"artist" : "Persona 5",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Jazz"
|
||||
},
|
||||
{
|
||||
"duration" : 2100,
|
||||
"url" : "https://cdn.discordapp.com/attachments/331037116094087168/543191420370944001/DragonSharkOriginal3.mp3",
|
||||
"title" : "Terrorbyte/Dragon Shark theme",
|
||||
"artist" : "RetroSpecter",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Rock"
|
||||
},
|
||||
{
|
||||
"duration" : 1600,
|
||||
"url" : "https://cdn.discordapp.com/attachments/528973352728264714/583441087633555456/Prey_-_Everything_is_Going_to_Be_Ok_online-audio-converter.com.mp3",
|
||||
"title" : "Everything Is Going To Be Ok",
|
||||
"artist" : "Mick Gordon",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Electronic"
|
||||
},
|
||||
{
|
||||
"duration" : 2440,
|
||||
"url" : "https://cdn.discordapp.com/attachments/311691674130710528/463590234978910228/Saga_of_Tanya_the_Evil_-_Jingo_Jungle_Opening_ENGLISH_ver_AmaLee.mp3",
|
||||
"title" : "Jingo Jungle",
|
||||
"artist" : "Leeandlie http://bit.ly/Leeandlie",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Electronic"
|
||||
},
|
||||
{
|
||||
"duration" : 4030,
|
||||
"url" : "https://cdn.discordapp.com/attachments/311691674130710528/468345155498541066/TheMadnessOfFate.mp3",
|
||||
"title" : "Madness of Fate",
|
||||
"artist" : "NIIC the singing dog - http://bit.ly/NIICDOGYT",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Electronic"
|
||||
},
|
||||
{
|
||||
"duration" : 2350,
|
||||
"url" : "https://cdn.discordapp.com/attachments/311691674130710528/449909217403469837/Hard_Bass_School_-_narkotik_kal.mp3",
|
||||
"title" : "Narkotik kal",
|
||||
"artist" : "Hardbass",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Ambience"
|
||||
},
|
||||
{
|
||||
"duration" : 2850,
|
||||
"url" : "https://cdn.discordapp.com/attachments/528973352728264714/613807206047154217/TERRORBYTE_-_HELIOS.mp3",
|
||||
"title" : "Helios",
|
||||
"artist" : "TERRORBYTE",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Metal"
|
||||
},
|
||||
{
|
||||
"duration" : 1110,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/453308819422838784/System_Of_A_Down_-_Shimmy_11.mp3",
|
||||
"title" : "Shimmy",
|
||||
"artist" : "System of a Down",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Rock"
|
||||
},
|
||||
{
|
||||
"duration" : 1630,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/453308919067049995/System_Of_A_Down_-_Science_10.mp3",
|
||||
"title" : "Science",
|
||||
"artist" : "System of a Down",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Rock"
|
||||
},
|
||||
{
|
||||
"duration" : 1750,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/453308944706699284/System_Of_A_Down_-_Deer_Dance_03.mp3",
|
||||
"title" : "deer dance",
|
||||
"artist" : "System of a Down",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Rock"
|
||||
},
|
||||
{
|
||||
"duration" : 1790,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/453308945411473428/System_Of_A_Down_-_Atwa.mp3",
|
||||
"title" : "Atwa",
|
||||
"artist" : "System of a Down",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Rock"
|
||||
},
|
||||
{
|
||||
"duration" : 2400,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/453308969772122112/System_Of_A_Down_-_Forest_08.mp3",
|
||||
"title" : "Forest",
|
||||
"artist" : "System of a Down",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Rock"
|
||||
},
|
||||
{
|
||||
"duration" : 2110,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/453308978089426985/System_Of_A_Down_-_Prison_Song_01.mp3",
|
||||
"title" : "Prison song",
|
||||
"artist" : "System of a Down",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Rock"
|
||||
},
|
||||
{
|
||||
"duration" : 2150,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/453308978089426985/System_Of_A_Down_-_Prison_Song_01.mp3",
|
||||
"title" : "SPIDERS!",
|
||||
"artist" : "System of a Down",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Rock"
|
||||
},
|
||||
{
|
||||
"duration" : 2320,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/453309000780611604/System_Of_A_Down_-_Aerials_14.mp3",
|
||||
"title" : "Aerials",
|
||||
"artist" : "System of a Down",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Rock"
|
||||
},
|
||||
{
|
||||
"duration" : 1260,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/453309015955472394/System_Of_A_Down_-_Jet_Pilot_04.mp3",
|
||||
"title" : "Jet Pilot",
|
||||
"artist" : "System of a Down",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Rock"
|
||||
},
|
||||
{
|
||||
"duration" : 1510,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/454653832945860608/Skeleton_Man-_The_Axis_of_Awesome.mp3",
|
||||
"title" : "Skeleton Man",
|
||||
"artist" : "AoW",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Classical and Orchestral"
|
||||
},
|
||||
{
|
||||
"duration" : 2770,
|
||||
"url" : "https://cdn.discordapp.com/attachments/745916615606140938/775593951259918336/Nanook_Rubs_It.mp3",
|
||||
"title" : "Nanook Rubs It",
|
||||
"artist" : "Frank Zappa",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Country and Western"
|
||||
},
|
||||
{
|
||||
"duration" : 3370,
|
||||
"url" : "https://cdn.discordapp.com/attachments/745916615606140938/775593948307521566/Muffin_Man.mp3",
|
||||
"title" : "Muffin Man",
|
||||
"artist" : "Frank Zappa",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Folk and Indie"
|
||||
},
|
||||
{
|
||||
"duration" : 1760,
|
||||
"url" : "https://cdn.discordapp.com/attachments/404660884531707906/456271996314058752/Edgar_Rothermich_-01_Theme_from_Silent_Hill_jungle-vibe.com.mp3",
|
||||
"title" : "Silent Hill",
|
||||
"artist" : "Akira Yamaoka and Edgar Rothermich",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Country and Western"
|
||||
},
|
||||
{
|
||||
"duration" : 1910,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/460490120240300052/Nightcore_-_Tetris.mp3",
|
||||
"title" : "Tetris Remixed",
|
||||
"artist" : "nightcore",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Electronic"
|
||||
},
|
||||
{
|
||||
"duration" : 2030,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/460490219167154186/VERSACE_2017_-_TIX__The_Pssy_Project.mp3",
|
||||
"title" : "Versance",
|
||||
"artist" : "PussyProject",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Classical and Orchestral"
|
||||
},
|
||||
{
|
||||
"duration" : 2400,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/460490229523021834/-_.mp3",
|
||||
"title" : "Russian Techno",
|
||||
"artist" : "Some russians",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Hip-Hop and Rap"
|
||||
},
|
||||
{
|
||||
"duration" : 2200,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/460490231611654144/Rock_Dog_2017_Movie_Official_Lyric_Video_Glorious_by_Adam_Friedman.mp3",
|
||||
"title" : "Gloriouse",
|
||||
"artist" : "Rock Dog",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Rock"
|
||||
},
|
||||
{
|
||||
"duration" : 2580,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/460490245725487104/Gigi_DAgostino_-_You_Spin_Me_Round__Tecno_Fes_2_.mp3",
|
||||
"title" : "You spin me around",
|
||||
"artist" : "Gigi DAgostino",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Pop"
|
||||
},
|
||||
{
|
||||
"duration" : 2640,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/460490246610747402/-__Kyary_Pamyu_Pamyu_-.mp3",
|
||||
"title" : "Pamyu Pamyu",
|
||||
"artist" : "Kyary",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Pop"
|
||||
},
|
||||
{
|
||||
"duration" : 1620,
|
||||
"url" : "https://cdn.discordapp.com/attachments/377217220041900034/457628201200648202/Berserk_-_S3RL_ft_Iceman.mp3",
|
||||
"title" : "Beserk",
|
||||
"artist" : "S3RL ft Iceman",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Metal"
|
||||
},
|
||||
{
|
||||
"duration" : 3510,
|
||||
"url" : "https://cdn.discordapp.com/attachments/458630047167807488/520025625852117002/Nick_Hakim_-_Pour_Another.mp3",
|
||||
"title" : "Pour Another",
|
||||
"artist" : "Nick Hakim",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Jazz"
|
||||
},
|
||||
{
|
||||
"duration" : 1270,
|
||||
"url" : "https://cdn.discordapp.com/attachments/526693916859170816/559236326264668190/Ocean_Man.mp3",
|
||||
"title" : "Ocean Man",
|
||||
"artist" : "Ween",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Classical and Orchestral"
|
||||
},
|
||||
{
|
||||
"duration" : 2990,
|
||||
"url" : "https://cdn.discordapp.com/attachments/458630047167807488/520025672702492682/Nick_Hakim_-_I_Dont_Know.mp3",
|
||||
"title" : "I dont know",
|
||||
"artist" : "Nick Hakim",
|
||||
"secret": false,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Jazz"
|
||||
},
|
||||
{
|
||||
"duration" : 1830,
|
||||
"url" : "https://cdn.discordapp.com/attachments/404660884531707906/614356720503881728/Underfell_Megalovania.mp3",
|
||||
"title" : "Underfell",
|
||||
"artist" : "keno9988iii",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Metal"
|
||||
},
|
||||
{
|
||||
"duration" : 3730,
|
||||
"url" : "https://cdn.discordapp.com/attachments/661630061983825938/663112074880352276/Headhunterz_-_Scrap_Attack_HQ.mp3",
|
||||
"title" : "Scrap Attack",
|
||||
"artist" : "Headhunterz",
|
||||
"secret": true,
|
||||
"lobby": false,
|
||||
"jukebox": true,
|
||||
"genre": "Electronic"
|
||||
}
|
||||
]
|
||||
Reference in New Issue
Block a user