Exemple #1
0
        public void AddGroup(string name)
        {
            var group = new Group()
            {
                Name = name
            };

            group.Initialize();
            Groups.Add(group);
        }
 public void AddGroup(string name)
 {
     var group = new Group()
     {
         Name = name
     };
     group.Initialize();
     Groups.Add(group);
 }
        public void ParseGroup(XmlNode node)
        {
            if (node.Attributes.Count > 0)
            {
                var group = new Group();
                group.Initialize();

                foreach (XmlAttribute attribute in node.Attributes)
                {
                    switch (attribute.Name)
                    {
                        case "Name":
                            group.Name = attribute.Value;
                            break;
                        case "Color":
                            Color colour;
                            if (Color.TryParseRGB(attribute.Value, out colour)) group.Color = colour;
                            break;
                        case "CanBuild":
                            bool canBuild;
                            if (Boolean.TryParse(attribute.Value, out canBuild)) group.CanBuild = canBuild;
                            break;
                        case "Default":
                            if (HasDefaultGroup())
                            {
                                ProgramLog.Admin.Log("[Warning] Multiple default groups");
                                continue;
                            }

                            bool _default;
                            if (Boolean.TryParse(attribute.Value, out _default)) group.Default = _default;
                            break;
                        case "Prefix":
                            group.Prefix = attribute.Value;
                            break;
                        case "Suffix":
                            group.Suffix = attribute.Value;
                            break;
                        case "ChatSeperator":
                            group.ChatSeperator = attribute.Value;
                            break;
                        case "Rank":
                            int rank;
                            if (Int32.TryParse(attribute.Value, out rank)) group.Rank = rank;
                            break;
                    }
                }

                if (node.HasChildNodes)
                {
                    foreach (XmlNode cNode in node.ChildNodes)
                    {
                        switch (cNode.Name)
                        {
                            case "Permissions":
                                if (cNode.HasChildNodes)
                                    foreach (XmlNode gNode in cNode.ChildNodes)
                                    {
                                        var permission = gNode.InnerText.Trim();
                                        if (permission != null && permission.Length > 0) group.Permissions.Add(permission);
                                    }
                                break;
                            case "DenyPermissions":
                                if (cNode.HasChildNodes)
                                    foreach (XmlNode gNode in cNode.ChildNodes)
                                    {
                                        var permission = gNode.InnerText.Trim();
                                        if (permission != null && permission.Length > 0) group.DenyPermissions.Add(permission);
                                    }
                                break;
                            default:
                                PermissionsX.XLog("Uknown element `{0}`", cNode.Name);
                                break;
                        }
                    }
                }

                Groups.Add(group);
            }
        }
Exemple #4
0
        public void ParseGroup(XmlNode node)
        {
            if (node.Attributes.Count > 0)
            {
                var group = new Group();
                group.Initialize();

                foreach (XmlAttribute attribute in node.Attributes)
                {
                    switch (attribute.Name)
                    {
                    case "Name":
                        group.Name = attribute.Value;
                        break;

                    case "Color":
                        Color colour;
                        if (Color.TryParseRGB(attribute.Value, out colour))
                        {
                            group.Color = colour;
                        }
                        break;

                    case "CanBuild":
                        bool canBuild;
                        if (Boolean.TryParse(attribute.Value, out canBuild))
                        {
                            group.CanBuild = canBuild;
                        }
                        break;

                    case "Default":
                        if (HasDefaultGroup())
                        {
                            ProgramLog.Admin.Log("[Warning] Multiple default groups");
                            continue;
                        }

                        bool _default;
                        if (Boolean.TryParse(attribute.Value, out _default))
                        {
                            group.Default = _default;
                        }
                        break;

                    case "Prefix":
                        group.Prefix = attribute.Value;
                        break;

                    case "Suffix":
                        group.Suffix = attribute.Value;
                        break;

                    case "ChatSeperator":
                        group.ChatSeperator = attribute.Value;
                        break;

                    case "Rank":
                        int rank;
                        if (Int32.TryParse(attribute.Value, out rank))
                        {
                            group.Rank = rank;
                        }
                        break;
                    }
                }

                if (node.HasChildNodes)
                {
                    foreach (XmlNode cNode in node.ChildNodes)
                    {
                        switch (cNode.Name)
                        {
                        case "Permissions":
                            if (cNode.HasChildNodes)
                            {
                                foreach (XmlNode gNode in cNode.ChildNodes)
                                {
                                    var permission = gNode.InnerText.Trim();
                                    if (permission != null && permission.Length > 0)
                                    {
                                        group.Permissions.Add(permission);
                                    }
                                }
                            }
                            break;

                        case "DenyPermissions":
                            if (cNode.HasChildNodes)
                            {
                                foreach (XmlNode gNode in cNode.ChildNodes)
                                {
                                    var permission = gNode.InnerText.Trim();
                                    if (permission != null && permission.Length > 0)
                                    {
                                        group.DenyPermissions.Add(permission);
                                    }
                                }
                            }
                            break;

                        default:
                            PermissionsX.XLog("Uknown element `{0}`", cNode.Name);
                            break;
                        }
                    }
                }

                Groups.Add(group);
            }
        }