public async Task InitializeTimeZoneAsync(CommandContext context) { using IBotAccessProvider dataAccessProvider = this.providerBuilder.Build(); if (dataAccessProvider.GetUsersTimeZone(context.User.Id) != null) { await context.RespondAsync( $"{context.User.Mention}, you already have a timezone set up. To update your timezone please type `time update`."); return; } await context.RespondAsync( "Please navigate to https://kevinnovak.github.io/Time-Zone-Picker/ and select your timezone. After you do please hit the copy button and paste the contents into the chat."); InteractivityExtension interactivity = context.Client.GetInteractivity(); InteractivityResult <DiscordMessage> result = await interactivity.WaitForMessageAsync(msg => msg.Author.Equals(context.Message.Author), TimeSpan.FromMinutes(1)); if (!result.TimedOut) { DateTimeZone test = this.timeZoneProvider.GetZoneOrNull(result.Result.Content); if (test != null) { dataAccessProvider.AddUserTimeZone(context.Message.Author.Id, result.Result.Content); await context.RespondAsync($"I set your timezone as {result.Result.Content} in all guilds I am a member of."); } else { await context.RespondAsync("You provided me with an invalid timezone. Try again by typing `time init`."); } } else { await context.RespondAsync( "You waited too long to respond."); } }