示例#1
0
        private void Init()
        {
            CommandAttribute commandAttribute = mMethod.GetCustomAttribute <CommandAttribute>();

            Name = commandAttribute.CommandName;

            RoleAttribute roleAttribute = mMethod.GetCustomAttribute <RoleAttribute>();

            if (roleAttribute != null)
            {
                Role = roleAttribute.AvailableRole;
            }
        }
示例#2
0
        private BotRoles GetRealRole(IEnumerable <Discord.Role> roles, long guildId)
        {
            BotRoles userRole = BotRoles.User;

            foreach (var role in roles)
            {
                BotRoles realRole = RoleManager.GetRealRole <BotRoles>(role.Name, guildId);

                if (realRole > userRole)
                {
                    userRole = realRole;
                }
            }

            return(userRole);
        }
示例#3
0
        public async Task AddRole(CommandEventArgs e)
        {
            string discordRole = e.GetArg(CommandsConstants.ParameterDiscordRole);
            string realRole    = e.GetArg(CommandsConstants.ParameterRealRole);

            try
            {
                CheckRole(e.Server.Roles, discordRole);
                BotRoles botRole = ParseRole(realRole);

                RoleManager.RemoveRole(discordRole, (long)e.Server.Id);
                RoleManager.AddRole(discordRole, botRole, (long)e.Server.Id);

                await SendStyleMessage(e.Channel, SettingsModuleResource.RolesConnected, SettingsModuleResource.Markdown);
            }
            catch (ArgumentException exp)
            {
                await SendStyleMessage(e.Channel,
                                       String.Format(SettingsModuleResource.RoleIsNotExist, exp.Message),
                                       SettingsModuleResource.Markdown);
            }
        }
示例#4
0
 public RoleAttribute(BotRoles availableRole)
 {
     AvailableRole = availableRole;
 }