/// <summary>
            ///     Loads the plugins settings from the specified XML element.
            /// </summary>
            /// <param name="element">The XML element to load from.</param>
            /// <param name="helper">The XML configuration helper being used.</param>
            internal void LoadFromXmlElement(XElement element, ConfigurationFileHelper helper)
            {
                if (element == null)
                {
                    return;
                }

                //LoadByDefault attribute.
                LoadByDefault = helper.ReadBooleanAttribute(
                    element,
                    "loadByDefault",
                    false
                    );

                //Load plugins
                helper.ReadElementCollectionTo(
                    element,
                    "plugin",
                    e =>
                {
                    PluginSettings pluginSettings = new PluginSettings();
                    pluginSettings.LoadFromXmlElement(e, helper);
                    return(pluginSettings);
                },
                    Plugins
                    );
            }
                /// <summary>
                ///     Loads the path from the specified XML element.
                /// </summary>
                /// <param name="element">The XML element to load from.</param>
                /// <param name="helper">The XML configuration helper being used.</param>
                internal void LoadFromXmlElement(XElement element, ConfigurationFileHelper helper)
                {
                    if (element == null)
                    {
                        return;
                    }

                    //Read source
                    Source = helper.ReadStringAttribute(
                        element,
                        "src"
                        );

                    //Read port
                    CreateDirectory = helper.ReadBooleanAttribute(
                        element,
                        "createDir",
                        false
                        );

                    // Read dependency resolution strategy
                    DependencyResolutionStrategy = helper.ReadDependencyResolutionStrategy(
                        element,
                        "dependencyResolutionStrategy",
                        DependencyResolutionStrategy.RecursiveFromFile
                        );
                }
                /// <summary>
                ///     Loads the plugin settings from the specified XML element.
                /// </summary>
                /// <param name="element">The XML element to load from.</param>
                /// <param name="helper">The XML configuration helper being used.</param>
                internal void LoadFromXmlElement(XElement element, ConfigurationFileHelper helper)
                {
                    if (element == null)
                    {
                        return;
                    }

                    //Type attribute.
                    Type = helper.ReadStringAttribute(
                        element,
                        "type"
                        );

                    //Load attribute.
                    Load = helper.ReadBooleanAttribute(
                        element,
                        "load",
                        true
                        );

                    helper.ReadAttributeCollectionTo(
                        element.Element("settings"),
                        Settings
                        );
                }
            /// <summary>
            ///     Loads the server settings from the specified XML element.
            /// </summary>
            /// <param name="element">The XML element to load from.</param>
            /// <param name="helper">The XML configuration helper being used.</param>
            internal void LoadFromXmlElement(XElement element, ConfigurationFileHelper helper)
            {
                if (element == null)
                {
                    return;
                }

                // Warnings disabled as we're implementing obsolete functionality
#pragma warning disable
                //Read address
                Address = helper.ReadIPAttributeOrDefault(
                    element,
                    "address",
                    IPAddress.Any
                    );

                //Read port
                Port = helper.ReadUInt16AttributeOrDefault(
                    element,
                    "port",
                    4296
                    );

                //Read the ip type
                IPVersion = helper.ReadIPVersionAttributeOrDefault(
                    element,
                    "ipVersion",
                    IPVersion.IPv4
                    );

                //Read no delay
                NoDelay = helper.ReadBooleanAttribute(
                    element,
                    "noDelay",
                    false
                    );

                //Read use fallback networking
                UseFallbackNetworking = helper.ReadBooleanAttribute(
                    element,
                    "useFallback",
                    false
                    );
#pragma warning restore

                //Read max strikes
                MaxStrikes = helper.ReadByteAttribute(
                    element,
                    "maxStrikes"
                    );

#if PRO
                //Read server group
                ServerGroup = helper.ReadStringAttributeOrDefault(
                    element,
                    "serverGroup",
                    null
                    );
#endif

                //Read reconnect attempts
                ReconnectAttempts = helper.ReadUInt16AttributeOrDefault(
                    element,
                    "reconnectAttempts",
                    5
                    );
            }