private async Task OnMessageReceivedAsync(SocketUserWaitContext context, IUserMessage msg)
        {
            if (OutputChannel.Id != msg.Channel.Id)
            {
                return;
            }
            string input = msg.Content.ToLower().Trim();

            if (input == "cancel")
            {
                await CancelAsync().ConfigureAwait(false);
            }
            else if (input == Confirmation)
            {
                await FinishAsync().ConfigureAwait(false);
            }
        }
 private async Task OnExpiredAsync(SocketUserWaitContext arg)
 {
     await OutputChannel.SendMessageAsync($"**{Name}:** Timed out!").ConfigureAwait(false);
 }
 private async Task OnStartedAsync(SocketUserWaitContext arg)
 {
     StartMessage = await OutputChannel.SendMessageAsync($"**{Name}:** Type `{Format.Sanitize(Confirmation)}` to complete or type `cancel` to stop").ConfigureAwait(false);
 }
 private async Task OnEndedAsync(SocketUserWaitContext arg)
 {
     await StartMessage.DeleteAsync().ConfigureAwait(false);
 }
 private async Task OnCanceledAsync(SocketUserWaitContext arg)
 {
     await OutputChannel.SendMessageAsync($"**{Name}:** Was canceled!").ConfigureAwait(false);
 }