예제 #1
0
        public async Task CopyQueue(CommandContext ctx, [RemainingText] string name)
        {
            var q = await Database.GetQueue(ctx.Guild);

            if (q.Count == 0)
            {
                await ctx.RespondAsync("Nothing in queue");

                return;
            }
            var pls = await PlaylistDB.GetPlaylistsSimple(ctx.Member.Id);

            if (pls.Any(x => x == name))
            {
                await ctx.RespondAsync(embed : new DiscordEmbedBuilder().WithTitle("Copy Queue").WithDescription("**Error** You already have a playlist with that name!").Build());

                return;
            }
            await PlaylistDB.AddPlaylist(name, ctx.Member.Id);

            foreach (var e in q)
            {
                await PlaylistDB.AddEntry(name, ctx.Member.Id, e.track.TrackString);
            }
            await ctx.RespondAsync(embed : new DiscordEmbedBuilder().WithTitle("Queue Copy").WithDescription("Queue was saved to new playlist -> " + name).Build());
        }
예제 #2
0
        public async Task Add(CommandContext ctx, [RemainingText] string name = null)
        {
            if (name == null)
            {
                name = await SelectPL(ctx);

                if (name == null)
                {
                    return;
                }
            }
            var inter = ctx.Client.GetInteractivity();
            var p     = await PlaylistDB.GetPlaylistsSimple(ctx.Member.Id);

            if (!p.Any(x => x == name))
            {
                await ctx.RespondAsync(embed : new DiscordEmbedBuilder().WithTitle("Add Song").WithDescription("**Error** You dont have a playlist with that name!").Build());

                return;
            }
            var pls = await PlaylistDB.GetPlaylist(ctx.Member.Id, name);

            if (pls.ExternalService != ExtService.None)
            {
                await ctx.RespondAsync(embed : new DiscordEmbedBuilder().WithTitle("Add Song").WithDescription("**Error** This playlist is a fixed one, you cant add songs to this!").Build());

                return;
            }
            var msg = await ctx.RespondAsync(embed : new DiscordEmbedBuilder().WithTitle("Add Song").WithDescription($"Please enter the song searchterm or URL now\n" +
                                                                                                                     $"No prefix needed!").Build());

            var hm = await inter.WaitForMessageAsync(x => x.Author == ctx.Member, TimeSpan.FromSeconds(30));

            await msg.DeleteAsync();

            var got = await PlaylistDB.GetSong(hm.Result.Content, ctx);

            if (got == null)
            {
                return;
            }
            await PlaylistDB.AddEntry(name, ctx.Member.Id, got.Tracks);

            var ent = await pls.GetEntries();

            if (got.Tracks.Count > 1)
            {
                await ctx.RespondAsync(embed : new DiscordEmbedBuilder().WithTitle("Add Song").WithDescription($"Added entry -> {got.Tracks[0].Title}!\n" +
                                                                                                               $"And {got.Tracks.Count - 2} more!").Build());
            }
            else
            {
                await ctx.RespondAsync(embed : new DiscordEmbedBuilder().WithTitle("Add Song").WithDescription($"Added entry -> {got.Tracks[0].Title}!").Build());
            }
        }