public async Task GatherLeagueOfLegendsParty() { var usersWithLolRole = Context.Guild.Roles.FirstOrDefault(r => r.Name == RoleFactory.GetRoleName(RoleTypeEnum.Liga)).Members .Where(u => u.Status != UserStatus.Offline && u.Status != UserStatus.Invisible) .ToList(); if (!usersWithLolRole.Any()) { await ReplyAsync($"Nikt nie ma rangi **{RoleFactory.GetRoleName(RoleTypeEnum.Liga)}**"); return; } usersWithLolRole.ForEach(u => u.SendMessageAsync($"**{Context.User.Username}** zbiera drużyne do Ligi legend, przybądź!")); await ReplyAsync($"Wezwano drużynę: **{string.Join(" ", usersWithLolRole.Select(u => u.Username))}**"); }
public async Task UmassignRoleFromUser(params string[] commandArgs) { if (commandArgs?.Length != 2) { await ReplyAsync("Dzban, $Role Unassign {osoba} {rola}"); return; } var user = Context.Guild.Users.FirstOrDefault(u => u.Username == commandArgs[0]); if (!await ValidateObjectIfItsNotNullAsync(user, "Podany user nie istnieje na serwerze")) { return; } var role = Context.Guild.Roles.FirstOrDefault(r => r.Name == commandArgs[1]); if (!await ValidateObjectIfItsNotNullAsync(role, "Podana rola nie istnieje na serwerze")) { return; } if (role.Permissions.Administrator && (SocketGuildUser)Context.User is var invoker && !invoker.Roles.Any(r => r.Name == RoleFactory.GetRoleName(RoleTypeEnum.Buk))) { await ReplyAsync("Tylko administrator może zabierać role administratorskie"); return; } await user.RemoveRoleAsync(role); await ReplyAsync($"Pomyślnie udało się zabrać rolę **{role.Name}** użytkownikowi **{user.Username}**"); }
public MemberAssignmentService(DiscordSocketClient client, RoleTypeEnum roleTypeEnum) { _client = client; _roleName = RoleFactory.GetRoleName(roleTypeEnum); }