예제 #1
0
        public async Task removeRole(Discord.IRole role)
        {
            //remove a task from the database!
            string result = DBTransaction.removeRole(role.Id);

            await ReplyAsync(result);
        }
예제 #2
0
        public async Task addRole(Discord.IRole role, string emoji, ulong messageID)
        {
            //try to give user role in order to test if perms are present
            IGuildUser user = (IGuildUser)Context.Message.Author;

            try
            {
                //if user has it, remove then add back, this prevents removal of roles from people who already had a role
                if (user.RoleIds.Contains(role.Id))
                {
                    await user.RemoveRoleAsync(role);

                    await user.AddRoleAsync(role);
                }
                //if they dont, add it and then remove again
                else
                {
                    await user.AddRoleAsync(role);

                    await user.RemoveRoleAsync(role);
                }
                Console.WriteLine("Successful Role addition test. Permissions ok.");
                //add a task to list
                DBTransaction.setReactionRole(role.Id, Context.Guild.Id, emoji, messageID);
                await ReplyAsync("Success! Reacting with ``" + emoji + "`` will give the user the ``" + role.Name + "`` role!");
            }
            catch
            {
                await ReplyAsync("Sorry! Something went wrong! Make sure that I have permission to modify roles and that my role is higher than the selected one!");
            }
        }
예제 #3
0
파일: Roles.cs 프로젝트: martindevans/Mute
        public async Task RoleWho(IRole role)
        {
            var users = (from user in await role.Guild.GetUsersAsync()
                         where user.RoleIds.Contains(role.Id)
                         let name = _users.Name(user)
                                    orderby name
                                    select name).ToArray();

            await DisplayItemList(users, () => "No one has this role", u => $"{u.Count} users have this role", (u, i) => $"{i + 1}. {u}");
        }
예제 #4
0
파일: Roles.cs 프로젝트: martindevans/Mute
 public async Task TestRole(IRole role)
 {
     if (await _groups.IsUnlocked(role))
     {
         await TypingReplyAsync($"The role `{role.Name}` is **unlocked**");
     }
     else
     {
         await TypingReplyAsync($"The role `{role.Name}` is **locked**");
     }
 }
예제 #5
0
파일: Roles.cs 프로젝트: martindevans/Mute
        public async Task LeaveRole(IRole role)
        {
            if (!await _groups.IsUnlocked(role))
            {
                await TypingReplyAsync("You cannot remove that role from yourself, it is not unlocked.");

                return;
            }

            if (Context.User is not IGuildUser gu)
            {
                await TypingReplyAsync("You need to do this within a guild channel");

                return;
            }

            await gu.RemoveRoleAsync(role);

            await TypingReplyAsync($"Removed role `{role.Name}` from `{gu.Nickname ?? gu.Username}`");
        }
예제 #6
0
파일: Roles.cs 프로젝트: martindevans/Mute
        public async Task JoinRole(IRole role)
        {
            if (!await _groups.IsUnlocked(role))
            {
                await TypingReplyAsync("You cannot give yourself that role, it is not unlocked.");

                return;
            }

            if (Context.User is not IGuildUser gu)
            {
                await TypingReplyAsync("You need to do this within a guild channel");

                return;
            }

            await gu.AddRoleAsync(role);

            await TypingReplyAsync($"Granted role `{role.Name}` to `{gu.Nickname ?? gu.Username}`");
        }
예제 #7
0
파일: Roles.cs 프로젝트: martindevans/Mute
 public async Task RoleId(IRole role)
 {
     await TypingReplyAsync($"ID for `{role.Name}` is `{role.Id}`");
 }
예제 #8
0
파일: Roles.cs 프로젝트: martindevans/Mute
        public async Task LockRole(IRole role)
        {
            await _groups.Lock(role);

            await TypingReplyAsync($"Locked `{role.Name}`");
        }
예제 #9
0
파일: Roles.cs 프로젝트: Chronojam/Mute
        public async Task UnlockRole([NotNull] IRole role)
        {
            await _groups.Unlock(role);

            await TypingReplyAsync($"Unlocked `{role.Name}`");
        }