Exemple #1
0
        internal override void Init(CommandGroupBuilder cgb)
        {
            cgb.CreateCommand(Module.Prefix + "t")
            .Description($"Starts a game of trivia. You can add nohint to prevent hints." +
                         "First player to get to 10 points wins. 30 seconds per question." +
                         $"\n**Usage**:`{Module.Prefix}t nohint`")
            .Parameter("args", ParameterType.Multiple)
            .Do(async e =>
            {
                TriviaGame trivia;
                if (!RunningTrivias.TryGetValue(e.Server.Id, out trivia))
                {
                    var showHints  = !e.Args.Contains("nohint");
                    var triviaGame = new TriviaGame(e, showHints);
                    if (RunningTrivias.TryAdd(e.Server.Id, triviaGame))
                    {
                        await e.Channel.SendMessage("**Trivia game started!**");
                    }
                    else
                    {
                        await triviaGame.StopGame();
                    }
                }
                else
                {
                    await e.Channel.SendMessage("Trivia game is already running on this server.\n" + trivia.CurrentQuestion);
                }
            });

            cgb.CreateCommand(Module.Prefix + "tl")
            .Description("Shows a current trivia leaderboard.")
            .Do(async e =>
            {
                TriviaGame trivia;
                if (RunningTrivias.TryGetValue(e.Server.Id, out trivia))
                {
                    await e.Channel.SendMessage(trivia.GetLeaderboard());
                }
                else
                {
                    await e.Channel.SendMessage("No trivia is running on this server.");
                }
            });

            cgb.CreateCommand(Module.Prefix + "tq")
            .Description("Quits current trivia after current question.")
            .Do(async e =>
            {
                TriviaGame trivia;
                if (RunningTrivias.TryGetValue(e.Server.Id, out trivia))
                {
                    await trivia.StopGame();
                }
                else
                {
                    await e.Channel.SendMessage("No trivia is running on this server.");
                }
            });
        }
Exemple #2
0
 public Func <CommandEventArgs, Task> DoFunc() => async e => {
     TriviaGame trivia;
     if (!RunningTrivias.TryGetValue(e.Server.Id, out trivia))
     {
         var triviaGame = new TriviaGame(e);
         if (RunningTrivias.TryAdd(e.Server.Id, triviaGame))
         {
             await e.Channel.SendMessage("**Trivia game started!**\nFirst player to get to 10 points wins! You have 30 seconds per question.\nUse command `tq` if game was started by accident.**");
         }
         else
         {
             await triviaGame.StopGame();
         }
     }
     else
     {
         await e.Channel.SendMessage("Trivia game is already running on this server.\n" + trivia.CurrentQuestion);
     }
 };