public async Task <TriviaServiceResult> StartQuizForGuild(ulong guildId, IVoiceChannel channel, IChannel textChannel, int numQuestions) { if (_mapGuildIdsToQuizes.ContainsKey(guildId)) { return(TriviaServiceResult.AlreadyRunningQuiz); } _triviaItems.Shuffle(); List <TriviaItem> itemsForQuiz = _triviaItems.Take(numQuestions).ToList(); TriviaQuiz quiz = new TriviaQuiz(guildId, channel, textChannel, itemsForQuiz); _mapGuildIdsToQuizes.Add(guildId, quiz); quiz.OnFinishedQuestions += OnQuizFinished; await quiz.StartQuiz(); return(TriviaServiceResult.Success); }
private void OnQuizFinished(TriviaQuiz quiz) { _mapGuildIdsToQuizes.Remove(quiz.GuildId); }