Exemple #1
0
        public async Task TeamsAsync()
        {
            StringBuilder reply = new StringBuilder();

            foreach (var team in gamesService.Teams)
            {
                // TODO: Adicionar Id
                reply.AppendLine(team.Name);
            }

            // TODO: Conteúdo da mensagem não pode passar de 2000.

            //await ReplyAsync($"```cpp\n{reply.ToString()}```");

            await ReplyAsync("Serviço desativado temporáriamente");

            await LoggindService.Log($"{Context.User.Username}#{Context.User.Discriminator} solicitou {nameof(TeamsAsync)}", GetType(), Discord.LogSeverity.Info);
        }
        private async Task MessageReceived(SocketMessage arg)
        {
            var message = arg as SocketUserMessage;

            if (message is null || message.Author.IsBot)
            {
                return;
            }

            int argPos = 0;

            if (message.HasCharPrefix(Prefix, ref argPos) || message.HasMentionPrefix(client.CurrentUser, ref argPos))
            {
                var context = new SocketCommandContext(client, message);
                var result  = await commands.ExecuteAsync(context, argPos, services);

                if (!result.IsSuccess)
                {
                    await LoggindService.Log(result.ErrorReason, result.GetType(), LogSeverity.Info);
                }
            }
        }
Exemple #3
0
        public async Task RemoveReminderAsync(Team team)
        {
            if (team == null)
            {
                await ReplyAsync("Time não existente");
            }
            else
            {
                var reminder = reminderService.Reminders.FirstOrDefault(r => r.Team.Id == team.Id);
                if (reminder == null)
                {
                    await ReplyAsync($"Sem lembrete definido para {team}");
                }
                else
                {
                    await reminderService.RemoveReminder(reminder);
                    await ReplyAsync($"Lembrete removido para {team}");

                    await LoggindService.Log($"{Context.User.Username}#{Context.User.Discriminator} removeu o lembrete para {team}", GetType(), Discord.LogSeverity.Info);
                }
            }
        }
Exemple #4
0
        public async Task ReminderAsync(Team team)
        {
            var response = await reminderService.AddReminder(team);

            switch (response.Answer)
            {
            case ReminderAnswer.ReminderSet:
                response.Reminder.HalfTimeTrigger  += ReminderTrigger;
                response.Reminder.TenTimeTrigger   += ReminderTrigger;
                response.Reminder.OnTimeTrigger    += ReminderTrigger;
                response.Reminder.OtherTimeTrigger += ReminderTrigger;

                await ReplyAsync($"Lembrete definido para {response.Reminder.Team.Name}. Próximo jogo {response.Reminder.Game.ToString()} {response.Reminder.Game.MatchDate.ToString("dd/MM/yyyy HH:mm")}");

                await LoggindService.Log($"{Context.User.Username}#{Context.User.Discriminator} criou um novo lembrete para {response.Reminder.Team}", GetType(), Discord.LogSeverity.Info);

                break;

            case ReminderAnswer.ExistingReminder:
                await ReplyAsync($"Lembrete já definido para {response.Reminder.Team}. Próximo jogo {response.Reminder.Game.ToString()} {response.Reminder.Game.MatchDate.ToString("dd/MM/yyyy HH:mm")}");

                break;

            case ReminderAnswer.TeamNotFound:
                await ReplyAsync("team not found");

                break;

            case ReminderAnswer.NoUpcomingGames:
                await ReplyAsync($"Sem próximos jogos para {team}. Um lembrete será definido para quando houver um jogo.");

                break;

            default:
                break;
            }
        }
Exemple #5
0
        public async Task GamesAsync(Team team)
        {
            StringBuilder reply        = new StringBuilder();
            Team          existingTeam = null;

            if (team != null)
            {
                existingTeam = gamesService.Teams.FirstOrDefault(t => t.Id == team.Id);
            }
            foreach (var game in gamesService.Games)
            {
                // Se o time for nulo, retorna todos os jogos do dia.
                if (team == null)
                {
                    if (DateTime.Compare(DateTime.Now.Date, game.MatchDate.Date) == 0)
                    {
                        if (reminderService.Reminders.Any(r => r.Game.MatchId == game.MatchId))
                        {
                            reply.AppendLine(game.ToString() + " " + game.MatchDate.ToString("dd/MM/yyyy HH:mm") + " lembrete definido.");
                        }
                        else
                        {
                            reply.AppendLine(game.ToString() + " " + game.MatchDate.ToString("dd/MM/yyyy HH:mm"));
                        }
                    }
                }
                // Se time não for nulo, retorna todos os jogos do time.
                else if (game.TeamAId == existingTeam.Id || game.TeamBId == existingTeam.Id)
                {
                    if (reminderService.Reminders.Any(r => r.Game.MatchId == game.MatchId))
                    {
                        reply.AppendLine(game.ToString() + " " + game.MatchDate.ToString("dd/MM/yyyy HH:mm") + " lembrete definido");
                    }
                    else
                    {
                        reply.AppendLine(game.ToString() + " " + game.MatchDate.ToString("dd/MM/yyyy HH:mm"));
                    }
                }
            }

            // Se o reply for vazio...
            if (string.IsNullOrEmpty(reply.ToString()))
            {
                // Se o time for nulo...
                if (team == null)
                {
                    await ReplyAsync("Sem próximos jogos para hoje.");
                }
                // Se time existente for nulo...
                else if (existingTeam == null)
                {
                    await ReplyAsync("Time não encontrado.");
                }
                else
                {
                    await ReplyAsync($"Sem próximos jogos para {existingTeam.Name}");
                }
            }
            else
            {
                await ReplyAsync($"```cpp\n{reply.ToString()}```");
            }

            //await ReplyAsync(string.IsNullOrEmpty(reply.ToString()) ? "Sem próximos jogos ou time não encontrado." : "```cpp\n" + reply.ToString() + "```");

            await LoggindService.Log($"{Context.User.Username}#{Context.User.Discriminator} solicitou {nameof(GamesAsync)}", GetType(), Discord.LogSeverity.Info);
        }