Example #1
0
 internal async Task UpdateAll()
 {
     if (PlayingMessageId == 0)
     {
         PlayingMessageId = await Feed.SendAll(PlayingMessage);
     }
     else
     {
         await Feed.EditAll(PlayingMessageId, PlayingMessage);
     }
 }
Example #2
0
        public async Task Tick()
        {
            if (Running != 0)
            {
                if (Points.ContainsValue(PointLimit))
                {
                    await GetWinner();
                }
                else if (GetQuestion != null)
                {
                    if (GetQuestion.IsCompleted)
                    {
                        var Result = GetQuestion.Result;
                        GetQuestion = null;

                        var Trivia   = JObject.Parse(Result.Substring(1, Result.Length - 2));
                        var Question = Trivia["question"].ToString().Trim();

                        if (Question != string.Empty)
                        {
                            Answer = RemoveHtml.Replace(Trivia["answer"].ToString(), string.Empty).Replace("\\", "").Replace("(", "").Replace(")", "").Trim('"');
                            if (Answer.StartsWith("a "))
                            {
                                Answer = Answer.Substring("a ");
                            }
                            else if (Answer.StartsWith("an "))
                            {
                                Answer = Answer.Substring("an ");
                            }

                            await Feed.SendAll($"Trivia | {Question}");

                            Timer = new Stopwatch();
                            Timer.Start();

                            Bot.Log($"{Question} - {Answer}");
                        }
                    }
                }
                else if (Timer == null)
                {
                    if (AbortRequested)
                    {
                        AbortRequested = false;
                        await GetWinner();
                    }
                    else
                    {
                        GetQuestion = "http://jservice.io/api/random?count=1".WebResponse();
                        Running     = 1;
                    }
                }
                else if (Winner != null)
                {
                    if (!Points.ContainsKey(Winner))
                    {
                        Points.Add(Winner, 0);
                    }

                    Points[Winner]++;
                    Winner = null;
                    Timer  = null;
                }
                else if (Timer.ElapsedMilliseconds > 10000)
                {
                    if (Running == 1)
                    {
                        await Feed.SendAll($"Hint: `{HardHint}`");

                        Timer.Restart();
                        Running++;
                    }
                    else if (Running == 2)
                    {
                        await Feed.SendAll($"Hint: `{EasyHint}`");

                        Timer.Restart();
                        Running++;
                    }
                    else if (Running == 3)
                    {
                        await Feed.SendAll($"Time's up! The answer was `{Answer}`");

                        Timer = null;
                    }
                }
            }
        }