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); } } }
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); } } }
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; } }
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); }