public async Task SpotifyPlaylist(CommandContext ctx, string uri)
        {
            FullAlbum album = await global.spotify.Albums.Get(uri.Split(":").Last());

            if (album.Tracks.Items.Count != 0)
            {
                await ctx.Message.Channel.SendMessageAsync("Loading playlist...");

                if (await global.lavaPlayer.Join(ctx))
                {
                    List <LavalinkTrack> tracks = new List <LavalinkTrack>(album.Tracks.Items.Count);
                    foreach (SimpleTrack track in album.Tracks.Items)
                    {
                        LavalinkTrack lavaTrack = await LavaPlayer.SearchToTrack(ctx, $"{track.Name} - {track.Artists[0].Name}");

                        if (lavaTrack != null)
                        {
                            tracks.Add(lavaTrack);
                        }
                    }

                    tracks.TrimExcess();
                    await global.lavaPlayer.PlayTracksList(ctx, tracks);
                }
            }
            else
            {
                await ctx.Message.Channel.SendMessageAsync("Invalid link!");
            }
        }
Beispiel #2
0
        public async Task PlayDirect(CommandContext ctx, string link)
        {
            await SafeCall(ctx, async() =>
            {
                if (await global.lavaPlayer.Join(ctx))
                {
                    LavalinkTrack track = await LavaPlayer.UriToTrack(ctx, link);

                    await global.lavaPlayer.Play(ctx, track);
                }
            });
        }
Beispiel #3
0
        public async Task Playlist(CommandContext ctx, string link)
        {
            await SafeCall(ctx, async() =>
            {
                if (await global.lavaPlayer.Join(ctx))
                {
                    var tracks = await LavaPlayer.UrisToPlaylist(ctx, link);

                    await global.lavaPlayer.PlayTracks(ctx, tracks);
                }
            });
        }
Beispiel #4
0
        public async Task PlaySoundcloud(CommandContext ctx, [RemainingText] string search)
        {
            await SafeCall(ctx, async() =>
            {
                if (await global.lavaPlayer.Join(ctx))
                {
                    if (search.StartsWith("http://") || search.StartsWith("https://"))
                    {
                        string[] splitSearch = search.Split("/");
                        search = $"{splitSearch[splitSearch.Length - 1]} - {splitSearch[splitSearch.Length - 2]}";
                    }

                    LavalinkTrack track = await LavaPlayer.SearchToTrack(ctx, search, LavalinkSearchType.SoundCloud);

                    await global.lavaPlayer.Play(ctx, track);
                }
            });
        }
Beispiel #5
0
        public async Task Play(CommandContext ctx, [RemainingText] string search)
        {
            await SafeCall(ctx, async() =>
            {
                if (await global.lavaPlayer.Join(ctx))
                {
                    LavalinkTrack track;
                    if (search.StartsWith("http://") || search.StartsWith("https://"))
                    {
                        track = await LavaPlayer.UriToTrack(ctx, search);
                    }
                    else
                    {
                        track = await LavaPlayer.SearchToTrack(ctx, search);
                    }

                    await global.lavaPlayer.Play(ctx, track);
                }
            });
        }