예제 #1
0
 public async Task RemoveBotManagedRoleAsync(string roleStringInput, [Remainder] string roleName)
 {
     //Parse roleId from mention
     try
     {
         ulong roleID = MentionUtils.ParseRole(roleStringInput);
         GuildRolesManager.RemoveGuildRole(Context.Guild.Id, roleName, roleID);
     }
     catch (Exception ex)
     {
         await Context.Channel.SendMessageAsync($"Error in finding role, role {roleStringInput + ex.Message} does not exist");
     }
 }
        public async Task RemoveRoleFromListAsync([Remainder] string roleName)
        {
            //Get roles for guild
            var returnGuildRoles = GuildRolesManager.GetGuildRoles(Context.Guild.Id);

            //Filter role input to one user selected
            var role = returnGuildRoles.FirstOrDefault(x => x.GuildID == Context.Guild.Id && x.RoleName == roleName);

            //Get role from guild
            var selectedRole = Context.Guild.Roles.FirstOrDefault(x => x.Id == role.GuildRoleID);

            //Add role to user
            await(Context.User as IGuildUser).RemoveRoleAsync(selectedRole);
        }
        public async Task GetRoleListAsync()
        {
            var returnGuildRoles = GuildRolesManager.GetGuildRoles(Context.Guild.Id);

            //User stock list
            List <string> guildRoleNameList = new List <string>();

            //Get user portfolio
            var embedBuilder = new EmbedBuilder()
                               .WithColor(new Color(40, 144, 175))
                               .WithFooter(footer =>
            {
                footer
                .WithText("Sent by " + Context.Message.Author.ToString());
            })
                               .WithAuthor(author =>
            {
                author
                .WithName("Guild Roles - " + Context.Guild.ToString())
                .WithIconUrl("https://upload.wikimedia.org/wikipedia/commons/thumb/3/34/Talkicon.svg/480px-Talkicon.svg.png");
            });

            //Add roles to embed
            foreach (var role in returnGuildRoles)
            {
                guildRoleNameList.Add($"**{role.RoleName}**");
            }

            //Join guild role names from list
            string joinedGuildRoleNameList = string.Join(" \n ", guildRoleNameList);

            //If guild has no set roles, add invisible character
            if (string.IsNullOrEmpty(joinedGuildRoleNameList))
            {
                embedBuilder.AddInlineField("Role Name", "\u200b");
            }
            //If guild has roles, add roles
            else
            {
                embedBuilder.AddInlineField("Role Name", joinedGuildRoleNameList);
            }

            //Send user stock portfolio
            var embed = embedBuilder.Build();

            await Context.Message.Channel.SendMessageAsync(" ", embed : embed).ConfigureAwait(false);
        }