Beispiel #1
0
        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);
        }
Beispiel #2
0
 private void OnQuizFinished(TriviaQuiz quiz)
 {
     _mapGuildIdsToQuizes.Remove(quiz.GuildId);
 }