trivia fixy
This commit is contained in:
		| @@ -39,6 +39,7 @@ namespace NadekoBot.Classes.Trivia { | ||||
|             while (!ShouldStopGame) { | ||||
|                 // reset the cancellation source | ||||
|                 triviaCancelSource = new CancellationTokenSource(); | ||||
|                 var token = triviaCancelSource.Token; | ||||
|                 // load question | ||||
|                 CurrentQuestion = TriviaQuestionPool.Instance.GetRandomQuestion(oldQuestions); | ||||
|                 if (CurrentQuestion == null) { | ||||
| @@ -58,21 +59,19 @@ namespace NadekoBot.Classes.Trivia { | ||||
|  | ||||
|                 try { | ||||
|                     //hint | ||||
|                     await Task.Delay(HintTimeoutMiliseconds, triviaCancelSource.Token); | ||||
|                     await Task.Delay(HintTimeoutMiliseconds, token); | ||||
|                     await _channel.SendMessage($":exclamation:**Hint:** {CurrentQuestion.GetHint()}"); | ||||
|  | ||||
|                     //timeout | ||||
|                     await Task.Delay(QuestionDurationMiliseconds - HintTimeoutMiliseconds, triviaCancelSource.Token); | ||||
|                     await Task.Delay(QuestionDurationMiliseconds - HintTimeoutMiliseconds, token); | ||||
|  | ||||
|                 } catch (TaskCanceledException) { | ||||
|                     Console.WriteLine("Trivia cancelled"); | ||||
|                      | ||||
|                 } finally { | ||||
|                     GameActive = false; | ||||
|                     if (!triviaCancelSource.IsCancellationRequested) | ||||
|                         await _channel.Send($":clock2: :question: **Time's up!** The correct answer was **{CurrentQuestion.Answer}**"); | ||||
|                     NadekoBot.client.MessageReceived -= PotentialGuess; | ||||
|                 } | ||||
|                 GameActive = false; | ||||
|                 if (!triviaCancelSource.IsCancellationRequested) | ||||
|                     await _channel.Send($":clock2: :question: **Time's up!** The correct answer was **{CurrentQuestion.Answer}**"); | ||||
|                 NadekoBot.client.MessageReceived -= PotentialGuess; | ||||
|                 // load next question if game is still running | ||||
|                 await Task.Delay(2000); | ||||
|             } | ||||
| @@ -103,10 +102,10 @@ namespace NadekoBot.Classes.Trivia { | ||||
|                         users.TryAdd(e.User, 0); //add if not exists | ||||
|                         users[e.User]++; //add 1 point to the winner | ||||
|                         guess = true; | ||||
|                         triviaCancelSource.Cancel(); | ||||
|                     } | ||||
|                 } | ||||
|                 if (guess) { | ||||
|                     triviaCancelSource.Cancel(); | ||||
|                     await _channel.SendMessage($"☑️ {e.User.Mention} guessed it! The answer was: **{CurrentQuestion.Answer}**"); | ||||
|                     if (users[e.User] == WinRequirement) { | ||||
|                         ShouldStopGame = true; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user