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()); }
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()); } }