public async Task RemoveBannedWord([Remainder] string word)
        {
            //Test if the user using the command has the kick or administrator permission
            SocketGuildUser checkUser = Context.User as SocketGuildUser;

            if (!checkUser.GuildPermissions.Administrator) //Make sure user issuing command is admin
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, You cannot remove banned words, this requires you to be an administrator.");

                return;
            }

            bool result;

            result = await Data.Data.RemoveBannedWord(Context.Guild.Id, word.ToLower());

            if (result)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, \"{word}\" was successfully removed from the word ban list.");
            }
            else
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, \"{word}\" was not found in the ban list. Are you sure it was spelled correctly?");
            }

            //Channel to send the mod logs in
            await ModLog.PostInModLog(Context.Guild, "Removed banned word: " + word, Context.User, null, "");
        }
        public async Task SetNickname(SocketGuildUser user, string name, [Remainder] string reason = "No reason given.")
        {
            SocketGuildUser checkUser = Context.User as SocketGuildUser;

            if (!checkUser.GuildPermissions.KickMembers && !checkUser.GuildPermissions.Administrator) //Make sure user issuing command is admin
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, this command requires the kick permission! " +
                                                       $"Are you looking for the store command \"!nicknametarget?\"");

                return;
            }

            try
            {
                string oldName = user.Nickname;
                await user.ModifyAsync(x => x.Nickname = name);

                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, the nickname for {user.Mention} has been successfully changed.");

                await ModLog.PostInModLog(Context.Guild, $"Changed Nickname - Was \"{oldName}\"", Context.User, user, reason);
            }
            catch (Exception)
            {
                await Context.Channel.SendMessageAsync("My role is not above the target user's highest role. Please move me higher :grinning:");
            }
        }
        public async Task RemoveWarn(IGuildUser user = null, int amount = 1, [Remainder] string reason = "No reason given")
        {
            SocketGuildUser checkUser = Context.User as SocketGuildUser;

            if (!checkUser.GuildPermissions.KickMembers && !checkUser.GuildPermissions.Administrator) //Make sure user issuing command is admin
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, You cannot remove warnings, this requires the kick permission.");

                return;
            }

            //Make sure someone is targeted
            if (user == null)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, you must specify who you want to remove a warning from!");
            }

            //Don't target bots
            if (user.IsBot)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, you cannot remove a warning from a bot!");

                return;
            }

            //Remove the warnings
            await Data.Data.RemoveWarnings(user.Id, Context.Guild.Id, user.Username, amount);

            await Context.Channel.SendMessageAsync($"{user.Mention}, you have had {amount} warning(s) removed for \"{reason}\". " +
                                                   $"You now have {Data.Data.GetWarnings(user.Id, Context.Guild.Id)} warning(s).");

            //Channel to send the mod logs in
            await ModLog.PostInModLog(Context.Guild, "Remove warning", Context.User, user, reason);
        }
        public async Task KickUser(IGuildUser user = null, [Remainder] string reason = "No reason provided")
        {
            //Make sure user issuing command has perms
            SocketGuildUser checkUser = Context.User as SocketGuildUser;

            if (!checkUser.GuildPermissions.KickMembers && !checkUser.GuildPermissions.Administrator)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, You do not have kick permissions on this server.");

                return;
            }

            //Make sure a user is targeted
            if (user == null)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Username}, you must specify who you want to kick!");
            }

            if (user.Id == 322806920203337740)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, I cannot kick myself!");

                return;
            }

            //Make sure the bot has kick permissions
            SocketGuildUser Nephry = Context.Guild.GetUser(322806920203337740);

            if (!Nephry.GuildPermissions.KickMembers)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention} I do not have perms to kick users!");

                return;
            }

            try
            {
                //Send the target a DM saying why they were kicked
                await user.SendMessageAsync($"You have been kicked by {Context.User.Mention} for \"{reason}\".");

                //Display the target was kicked
                await Context.Channel.SendMessageAsync($"{user.Mention} has been kicked by {Context.User.Mention} for \"{reason}\"");

                await user.KickAsync(reason); //Kick the target

                //Channel to send the mod logs in
                await ModLog.PostInModLog(Context.Guild, "Kick", Context.User, user, reason);
            }
            catch (Exception)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Username}, I do not have permission " +
                                                       $"to kick on this server or my role is too low on the role list.");
            }
        }
        public async Task Purge(int amount = 10, [Remainder] string reason = "No reason given")
        {
            SocketGuildUser checkUser = Context.User as SocketGuildUser;

            if (!checkUser.GuildPermissions.KickMembers && !checkUser.GuildPermissions.Administrator) //Make sure user issuing command is admin
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, you cannot purge messages on this server, this requires the kick permission.");

                return;
            }

            //Make sure the amount is less than 51
            if (amount > 50)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, purging amount is limited to 50 due to rate limitations.");

                return;
            }

            if (amount < 1)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, please make sure you are purging at least 1 message.");

                return;
            }

            //Include the purge command in the count
            amount += 1;

            try
            {
                IEnumerable <IMessage> allMessages = await this.Context.Channel.GetMessagesAsync(amount).FlattenAsync();

                await(Context.Channel as SocketTextChannel).DeleteMessagesAsync(allMessages);
                Discord.Rest.RestUserMessage message = await Context.Channel.SendMessageAsync($"{Context.User.Mention}, {amount - 1} messages have been purged. Deleting this message in five seconds.");

                System.Timers.Timer timer = new Timer(5000);
                // Hook up the Elapsed event for the timer.
                timer.Elapsed  += (s, e) => (Context.Channel as SocketTextChannel).DeleteMessageAsync(message);
                timer.AutoReset = false;
                timer.Enabled   = true;

                //Channel to send the mod logs in
                await ModLog.PostInModLog(Context.Guild, "Purge", Context.User, null, reason);
            }
            catch (Exception e)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, I do not have the \"Manage Messages\" permission.");

                Console.WriteLine(e.Message);
            }
        }
        public async Task BanUser(IGuildUser user = null, [Remainder] string reason = "No reason provided")
        {
            SocketGuildUser checkUser = Context.User as SocketGuildUser;

            if (!checkUser.GuildPermissions.BanMembers && !checkUser.GuildPermissions.Administrator) //Make sure user issuing command is admin
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, You do not have ban permissions on this server.");

                return;
            }

            //Make sure someone is mention'd
            if (user == null)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, you must specify who you want to ban!");

                return;
            }

            if (user.Id == 322806920203337740)
            {
                await Context.Channel.SendMessageAsync("I cannot ban myself!");

                return;
            }

            //Make sure the bot has ban permissions
            SocketGuildUser Nephry = Context.Guild.GetUser(322806920203337740);

            if (!Nephry.GuildPermissions.BanMembers)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention} I do not have perms to ban users!");

                return;
            }

            try
            {   //Ban the user and say they were banned
                await user.SendMessageAsync($"You have been banned by {Context.User.Mention} for \"{reason}\".");

                await Context.Channel.SendMessageAsync($"{user.Mention} has been banned by {Context.User.Mention}");

                await user.Guild.AddBanAsync(user, 5, reason);

                //Channel to send the mod logs in
                await ModLog.PostInModLog(Context.Guild, "Ban", Context.User, user, reason);
            }
            catch (Exception)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, I do not have permission to ban on this server.");
            }
        }
        /// <summary>
        /// Unmutes the user when the timed mute expires. Adds the member role and removes the muted role.
        /// </summary>
        /// <param name="user">The user to unmute.</param>
        private async Task RemoveTempMute(SocketGuildUser user)
        {
            IReadOnlyCollection <SocketRole> roles = Context.Guild.Roles;

            //Holds if the roles were found
            bool memberFound = false;
            bool mutedFound  = false;

            foreach (SocketRole member in roles)
            {
                if (member.Name == "Member")
                {
                    memberFound = true;
                    await(user).AddRoleAsync(member);

                    foreach (SocketRole muted in roles)
                    {
                        if (muted.Name == "Muted")
                        {
                            mutedFound = true;

                            //Make sure the user is still muted, if not then return
                            IReadOnlyCollection <SocketRole> userToCheck = user.Roles;

                            foreach (SocketRole role in userToCheck)
                            {
                                if (role.Name == "Muted")
                                {
                                    await user.RemoveRoleAsync(muted);

                                    await Context.Channel.SendMessageAsync($"{user.Mention}, your timed mute has expired. You can now chat again!");

                                    SocketUser Nephry = Context.Guild.GetUser(322806920203337740);
                                    //Channel to send the mod logs in
                                    await ModLog.PostInModLog(Context.Guild, "Auto-Unmuted", Nephry, user, "Mute time expired.");

                                    return;
                                }
                            }
                        }
                    }
                }
            }
            //If the muting system has not been setup
            if (!memberFound || !mutedFound)
            {
                await Context.Channel.SendMessageAsync("Either the member, muted, or both role(s) has not been found. Make sure to put the bot at the top of the role list" +
                                                       " then type !rolesetup in order for the muting system to work.");
            }
        }
        public async Task AddBannedWord([Remainder] string word)
        {
            //Test if the user using the command has the kick or administrator permission
            SocketGuildUser checkUser = Context.User as SocketGuildUser;

            if (!checkUser.GuildPermissions.Administrator) //Make sure user issuing command is admin
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, You cannot ban words, this requires you to be an administrator.");

                return;
            }
            //Add the word
            await Data.Data.AddBannedWord(Context.Guild.Id, word.ToLower());

            await Context.Channel.SendMessageAsync($"{Context.User.Mention}, \"{word}\" was successfully added to the word ban list.");

            //Channel to send the mod logs in
            await ModLog.PostInModLog(Context.Guild, "Added banned word: " + word, Context.User, null, "");
        }
        public async Task PurgeUser(IGuildUser user = null, [Remainder] string reason = "No reason given")
        {
            try
            {
                //Get the last 50 messages in the channel
                IEnumerable <IMessage> specificMessages = await this.Context.Channel.GetMessagesAsync(50).FlattenAsync();

                //The list of messages to delete
                List <IMessage> messagesToDelete = new List <IMessage>();

                //Add the message to the list if it's by the user to delete
                foreach (IMessage messages in specificMessages)
                {
                    if (messages.Author.Id == user.Id)
                    {
                        messagesToDelete.Add(messages);
                    }
                }

                //Convert the list into an IEnumerable as required by the DeleteMessagesAsync method
                IEnumerable <IMessage> enumerableMessages = messagesToDelete;

                //Delete the messages by the user
                await(Context.Channel as SocketTextChannel).DeleteMessagesAsync(enumerableMessages);

                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, I have deleted all recent messages by {user.Mention} because of \"{reason}\"");

                //Channel to send the mod logs in
                await ModLog.PostInModLog(Context.Guild, "Purge User", Context.User, user, reason);

                return;
            }
            catch (Exception)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, I do not have the \"Manage Messages\" permission.");
            }
        }
        public async Task RemoveMute(SocketGuildUser target = null, [Remainder] string reason = "No reason given")
        {
            SocketGuildUser checkUser = Context.User as SocketGuildUser;

            if (!checkUser.GuildPermissions.KickMembers && !checkUser.GuildPermissions.Administrator) //Make sure user issuing command is admin
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, You cannot unmute users, this requires the kick permission.");

                return;
            }

            if (target == null)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, you must specify someone to unmute!");

                return;
            }
            IReadOnlyCollection <SocketRole> roles = Context.Guild.Roles;

            //Holds if the roles were found
            bool memberFound = false;
            bool mutedFound  = false;

            foreach (SocketRole memberRole in roles)
            {
                if (memberRole.Name == "Member")
                {
                    memberFound = true;
                    await(target).AddRoleAsync(memberRole);

                    foreach (SocketRole mutedRole in roles)
                    {
                        if (mutedRole.Name == "Muted")
                        {
                            mutedFound = true;

                            //Make sure the user is still muted, if not then return
                            IReadOnlyCollection <SocketRole> userToCheck = target.Roles;

                            foreach (SocketRole role in userToCheck)
                            {
                                if (role.Name == "Muted")
                                {
                                    await(target as IGuildUser).RemoveRoleAsync(role);
                                    await Context.Channel.SendMessageAsync($"{target.Mention}, you have been unmuted by {Context.User.Mention}.");

                                    //Channel to send the mod logs in
                                    await ModLog.PostInModLog(Context.Guild, "Unmute", Context.User, target, reason);

                                    return;
                                }
                            }
                            await Context.Channel.SendMessageAsync($"{target.Mention} is not currently muted!");
                        }
                    }
                }
            }
            //If the muting system is not set up
            if (!memberFound || !mutedFound)
            {
                await Context.Channel.SendMessageAsync("Either the member, muted, or both role(s) has not been found. Make sure to put the bot at the top of the role list" +
                                                       " then type !rolesetup in order for the muting system to work.");
            }
        }
        public async Task AddMute(SocketGuildUser user = null, int amount = 0, [Remainder] string reason = "No reason given")
        {
            //Test if the user using the command has the kick or administrator permission
            SocketGuildUser checkUser = Context.User as SocketGuildUser;

            if (!checkUser.GuildPermissions.KickMembers && checkUser.GuildPermissions.Administrator) //Make sure user issuing command is admin
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, You cannot mute users, this requires the kick permission.");

                return;
            }

            //Make sure a target was specified
            if (user == null)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, you must specify someone to mute!");

                return;
            }

            if (user.Id == 322806920203337740)
            {
                await Context.Channel.SendMessageAsync("I cannot mute myself!");

                return;
            }

            //Holds if the role exists
            bool muteFound = false;
            IReadOnlyCollection <SocketRole> roles = Context.Guild.Roles;

            foreach (SocketRole mutedRole in roles) //Find the role
            {
                if (mutedRole.Name == "Muted")
                {
                    muteFound = true;                    //Role was found
                    await(user).AddRoleAsync(mutedRole); //Add the muted role
                    bool memberFound = false;            //Holds if the member role was found
                    if (amount == 0)                     //If there was no time specified, make mute permanent
                    {
                        foreach (SocketRole memberRole in roles)
                        {
                            if (memberRole.Name == "Member")
                            {
                                //Remove the member role
                                await user.RemoveRoleAsync(memberRole);

                                //Say target was muted
                                await Context.Channel.SendMessageAsync($"{user.Mention}, you have been permanently muted by {Context.User.Mention} for \"{reason}\".");

                                //Channel to send the mod logs in
                                await ModLog.PostInModLog(Context.Guild, "Mute", Context.User, user, reason);

                                return;
                            }
                        }
                    }
                    else //Time limit on mute was placed
                    {
                        foreach (SocketRole roleMember in roles)
                        {
                            if (roleMember.Name == "Member")
                            {   //Remove the member role
                                await user.RemoveRoleAsync(roleMember);

                                memberFound = true;
                                break;
                            }
                        }
                        if (memberFound == true)
                        {
                            try
                            {   //Say user was muted for how long
                                await Context.Channel.SendMessageAsync($"{user.Mention}, you have been muted by {Context.User.Mention} for {amount} seconds for \"{reason}\".");

                                Timer timer = new Timer(amount * 1000);
                                // Hook up the Elapsed event for the timer.
                                timer.Elapsed += async(s, e) => await RemoveTempMute(user);

                                timer.AutoReset = false;
                                timer.Enabled   = true;

                                //Channel to send the mod logs in
                                await ModLog.PostInModLog(Context.Guild, "Mute", Context.User, user, reason);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine(e.Message);
                            }
                        }
                    }

                    //If the member role was not found, tell the user to type '!rolesetup'
                    if (memberFound == false)
                    {
                        await Context.Channel.SendMessageAsync("The Member role has not been found. Make sure to put the bot at the top of the role list" +
                                                               " then type !rolesetup in order for the muting system to work.");
                    }

                    return;
                }
            }

            //If the mute role was not found, tell the user to type '!rolesetup
            if (muteFound == false)
            {
                await Context.Channel.SendMessageAsync("The Muted role has not been found. Make sure to put the bot at the top of the role list" +
                                                       " then type !rolesetup in order for the muting system to work.");
            }
        }
        public async Task WarnUser(IGuildUser user = null, [Remainder] string reason = "No reason specified")
        {
            SocketGuildUser checkUser = Context.User as SocketGuildUser;

            if (!checkUser.GuildPermissions.KickMembers && !checkUser.GuildPermissions.Administrator) //Make sure user issuing command is admin
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, You cannot warn users, this requires the kick permission.");

                return;
            }
            //Make sure someone is targeted
            if (user == null)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, you must specify who you want to warn!");

                return;
            }
            //Don't warn bots
            if (user.IsBot)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, you cannot warn a bot!");

                return;
            }

            ulong  userid   = user.Id; //Holds user information
            ulong  guildid  = Context.Guild.Id;
            string username = user.Username;

            await Data.Data.AddWarnings(userid, guildid, username); //Add a warning

            int amountOfWarnings = Data.Data.GetWarnings(userid, guildid);

            //If user has 3 or more warnings, auto-kick
            if (amountOfWarnings >= 3)
            {
                SocketGuildUser nephry; //Get nephry
                nephry = Context.Guild.GetUser(322806920203337740);

                if (nephry == null)
                {
                    return;
                }

                //Make sure nephry has kick permissions
                if (nephry.GuildPermissions.KickMembers == false)
                {
                    amountOfWarnings = Data.Data.GetWarnings(user.Id, Context.Guild.Id);
                    await Context.Channel.SendMessageAsync($"{user.Mention}, you have been warned for \"{reason}\". You now have {amountOfWarnings} warning(s).");

                    //Channel to send the mod logs in
                    string actions;
                    switch (amountOfWarnings)
                    {
                    case 1:
                        actions = $"Warn ({amountOfWarnings}st Warning.)";
                        break;

                    case 2:
                        actions = $"Warn ({amountOfWarnings}nd Warning)";
                        break;

                    case 3:
                        actions = $"Warn ({amountOfWarnings}rd Warning)";
                        break;

                    default:
                        actions = $"Warn ({amountOfWarnings}th Warning)";
                        break;
                    }
                    await ModLog.PostInModLog(Context.Guild, actions, Context.User, user, reason);

                    return;
                }


                //Kick the user
                await user.SendMessageAsync("You were kicked for accumulating too many warnings.");

                await Context.Channel.SendMessageAsync($"{user.Mention} has been kicked for accumulating too many warnings.");

                await user.KickAsync("Accumulated too many warnings");

                await Data.Data.RemoveWarnings(userid, guildid, username, amountOfWarnings);

                //Channel to send the mod logs in
                await ModLog.PostInModLog(Context.Guild, "Warn", Context.User, user, reason);

                await ModLog.PostInModLog(Context.Guild, "Auto-Kicked for too many warnings.", nephry, user, reason);

                return;
            }
            //Display how many warnings the user has
            int currentAmount = Data.Data.GetWarnings(user.Id, Context.Guild.Id);
            await Context.Channel.SendMessageAsync($"{user.Mention}, you have been warned for \"{reason}\". You now have {currentAmount} warning(s).");

            //Channel to send the mod logs in
            string action = "Warn";

            switch (currentAmount)
            {
            case 1:
                action = $"Warn ({currentAmount}st Warning.)";
                break;

            case 2:
                action = $"Warn ({currentAmount}nd Warning)";
                break;

            case 3:
                action = $"Warn ({currentAmount}rd Warning)";
                break;

            default: action = $"Warn ({currentAmount}th Warning)";
                break;
            }
            await ModLog.PostInModLog(Context.Guild, action, Context.User, user, reason);
        }
        public async Task RoleSetup()
        {
            SocketGuildUser checkUser = Context.User as SocketGuildUser;

            if (!checkUser.GuildPermissions.Administrator)
            {
                await Context.Channel.SendMessageAsync($"{Context.User.Mention}, This command requires the administrator permission.");

                return;
            }

            //Get all the users in the guild
            IReadOnlyCollection <SocketGuildUser> users = Context.Guild.Users;
            bool memberFound = false;                                     //If the Member role was found
            bool muteFound   = false;                                     //If the Muted role was found
            IReadOnlyCollection <SocketRole> roles = Context.Guild.Roles; //List of all the server roles
            IRole member = null;                                          //Holds the member role for adding to each user

            //Search all the roles for "Member" and "Muted"
            foreach (SocketRole role in roles)
            {
                if (role.Name == "Member")
                {
                    memberFound = true;
                    member      = role;
                }
                else if (role.Name == "Muted")
                {
                    muteFound = true;
                }
                else if (role.Name == "@everyone")
                {
                    await role.ModifyAsync(x => //Change @everyone role so it can only read messages
                    {
                        GuildPermissions noPermissions = new GuildPermissions(false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false,
                                                                              false, false, false, false, false, false, false, false, false, false, false, false, false);
                        x.Permissions = noPermissions;
                    });
                }
                else if (role.Name != "Nephry")                         //Change the send message permission of every other role to false
                {
                    GuildPermissions permissions    = role.Permissions; //Permission to change
                    GuildPermissions newPermissions = permissions.Modify(null, null, null, null, null, null, false, null, null, false, null, null, null, null, null, null,
                                                                         null, null, false, null, null, null, null, null, null, null, null, null, null);
                    try
                    {
                        await role.ModifyAsync(x => //Change the permissions of the role
                        {
                            x.Permissions = newPermissions;
                        });
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.Message);
                    }
                }
            }

            //Channel to send the mod logs in
            await ModLog.PostInModLog(Context.Guild, "Set up roles", Context.User, null, "");

            //If the member role was not found, create it
            if (memberFound == false)
            {
                try
                {
                    GuildPermissions pm = new GuildPermissions(false, false, false, false, false, false, true, false, true, true, false, false, true, true, true, false,
                                                               true, true, true, false, false, false, true, false, true, false, false, false, false);
                    await Context.Guild.CreateRoleAsync("Member", pm);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }

            //If the mute role was not found, create it
            if (muteFound == false)
            {
                GuildPermissions pm = new GuildPermissions(false, false, false, false, false, false, false, false, true,
                                                           false, false, false, false, false, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false);

                await Context.Guild.CreateRoleAsync("Muted", pm);
            }

            //If member did not exist before, get it now
            if (member == null)
            {
                foreach (SocketRole role in roles)
                {
                    if (role.Name == "Member")
                    {
                        memberFound = true;
                        member      = role;
                        break;
                    }
                }
            }

            //Give every user the "Member" role
            foreach (SocketGuildUser user in users)
            {
                IGuildUser use = user;
                await use.AddRoleAsync(member);
            }

            await Context.Channel.SendMessageAsync($"{Context.User.Mention}, Role setup successfully complete.");
        }