コード例 #1
0
ファイル: MusicCommands.cs プロジェクト: nca45/Roblot
 public MusicCommands(MusicData music, LavalinkService lavalink, PasteBinService pastebin, YoutubeSearchEngine youtube)
 {
     this.MusicData = music;
     this.Lavalink  = lavalink;
     this.PasteBin  = pastebin;
     this.Youtube   = youtube;
 }
コード例 #2
0
ファイル: MusicClassHelpers.cs プロジェクト: nca45/Roblot
        // Helps do a poll to confirm if you want to delete
        public static async Task <PlaylistResult> DeletePlaylistHelperAsync(CommandContext ctx, string confirmMessage, string playlistName, PasteBinService pasteBinAPI)
        {
            var interactive = ctx.Client.GetInteractivity();
            // If already exists, ask if we want to overwrite
            var pollDuration = TimeSpan.FromSeconds(30);

            var confirmationMessage = await ctx.RespondAsync(confirmMessage);

            // Get the answer from the user
            var okReaction = DiscordEmoji.FromName(ctx.Client, ":white_check_mark:");
            await confirmationMessage.CreateReactionAsync(okReaction);

            var cancelReaction = DiscordEmoji.FromName(ctx.Client, ":x:");
            await confirmationMessage.CreateReactionAsync(cancelReaction);

            var poll_result = await interactive.WaitForReactionAsync(x => x.Emoji == okReaction || x.Emoji == cancelReaction, confirmationMessage, ctx.User, pollDuration);

            // Don't do anything if user cancels or poll times out
            if (poll_result.Result == null || poll_result.Result.Emoji == cancelReaction)
            {
                await confirmationMessage.DeleteAsync();

                return(PlaylistResult.Cancelled);
            }

            // If yes, delete the old playlist
            var deleteResult = await pasteBinAPI.deletePlaylistAsync(playlistName);

            // Error handling if deleting failed for some reason
            if (deleteResult == PlaylistResult.Failed)
            {
                return(PlaylistResult.Failed);
            }

            return(PlaylistResult.Successful);
        }