[Command("leaderboard")] public async Task Leaderboard() { var service = await SalgadoService.GetInstance(); var users = await service.GetUsers(); var orderedUsers = users.OrderByDescending(u => u.Pontos).ToArray(); string message = "`"; for (int i = 0; i < orderedUsers.Length; i++) { var user = orderedUsers[i]; message += $"{i + 1,-3} -- {user.Name,-30} -- {user.Pontos}\n"; } message += "`"; await ReplyAsync(message); }
[Command("pontos")] public async Task Pontos([Remainder][Summary("Quem acusar")] string userName) { var service = await SalgadoService.GetInstance(); var users = await service.GetUsersByQuery(userName); if (!users.Any()) { await ReplyAsync($"Não encontrei nenhum usuário com nome {userName}"); } else if (users.Count > 1) { await ReplyAsync($"Nome ambíguo ({string.Join(",", users.Select(u => u.Name))})"); } else if (users.Count == 1) { var user = users.First(); await ReplyAsync($"{user.Name} tem {user.Pontos} pontos"); } }
//[RequireUserPermission(GuildPermission.Administrator)] [Command("rmvponto")] public async Task RemovePoint([Remainder][Summary("Quem tirar ponto")] string userName) { var service = await SalgadoService.GetInstance(); var users = await service.GetUsersByQuery(userName); if (!users.Any()) { await ReplyAsync($"Não encontrei nenhum usuário com nome {userName}"); } else if (users.Count > 1) { await ReplyAsync($"Nome ambíguo ({string.Join(",", users.Select(u => u.Name))})"); } else if (users.Count == 1) { var user = users.First(); var updatedUser = await service.EditPoints(user.ChangePoints(user.Pontos - 1)); await ReplyAsync($"{updatedUser.Name} agora tem {updatedUser.Pontos} pontos."); } }