public async Task LeavePendingGame()
        {
            if (PendingGameService.PendingGames.Count == 0)
            {
                await ReplyAsync(ErrorView.NotFound());
            }
            else
            {
                PendingGame game = PendingGameService.PendingGames.FirstOrDefault();
                IUser       user = game.Users.FirstOrDefault(u => u.Id == Context.User.Id);
                if (game.Active)
                {
                    _game.RemoveUserFromPlay(user);
                    await _game.NotifyPlayerLeft(Context.User);
                }
                else
                {
                    game.Users.Remove(user);
                    await ReplyAsync(InfoView.LeftLobby());

                    if (game.Users.Count == 0)
                    {
                        PendingGameService.PendingGames.Clear();
                        await ReplyAsync(InfoView.DeletedLobby());
                    }
                }
            }
        }
 public async Task PlayersInGameLobby()
 {
     if (PendingGameService.PendingGames.Count == 0)
     {
         await ReplyAsync(ErrorView.NotFound());
     }
     else
     {
         PendingGame game = PendingGameService.PendingGames.FirstOrDefault();
         if (game.Users.Any())
         {
             string message = string.Join(", ", game.Users.Select(u => MentionUtils.MentionUser(u.Id)));
             await ReplyAsync(message);
         }
         else
         {
             await ReplyAsync("Game lobby is empty.");
         }
     }
 }
        public async Task JoinPendingGame()
        {
            if (!(await CanPayCostOfEntry(Context.User.Id)))
            {
                await ReplyAsync(ErrorView.NotEnoughFunds());
            }
            else if (PendingGameService.PendingGames.Count == 0)
            {
                await ReplyAsync(ErrorView.NotFound());
            }
            else if (PendingGameService.PendingGames.Any(g => g.Users.Any(u => u.Id == Context.User.Id)))
            {
                await ReplyAsync(ErrorView.AlreadyInLobby());
            }
            else
            {
                PendingGame game = PendingGameService.PendingGames.FirstOrDefault();
                if (game.Active)
                {
                    await ReplyAsync(ErrorView.InProgress());
                }
                else
                {
                    game.Users.Add(Context.User);
                    if (game.Users.Count == GameConfiguration.NumberOfPlayers)
                    {
                        game.Active = true;
                        await ReplyAsync(InfoView.GameStarting());

                        await _game.InitialiseGame(Context, game);
                    }
                    else
                    {
                        await ReplyAsync(InfoView.LobbyStatus(game.Users.Count));
                    }
                }
            }
        }