예제 #1
0
        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))}**");
        }
예제 #2
0
        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}**");
        }
예제 #3
0
 public MemberAssignmentService(DiscordSocketClient client, RoleTypeEnum roleTypeEnum)
 {
     _client   = client;
     _roleName = RoleFactory.GetRoleName(roleTypeEnum);
 }