Beispiel #1
0
 /// <summary>
 /// Erzeugt eine neue Instanz eines Textknotens mit vordefiniertem Text, Eigenschaften und untergeordneten Knoten.
 /// </summary>
 /// <param name="text">Der Text, mit dem der Knoten initialisiert wird.</param>
 /// <param name="properties">Die Eigenschaften des neuen Knotens.</param>
 /// <param name="childNodes">Die untergeordneten Knoten des neuen Knotens.</param>
 public EmoteNode(string text, EmoteNodeProperties properties, List <EmoteNode> childNodes)
 {
     this.Text       = text;
     this.Properties = properties;
     this.ChildNodes = childNodes;
 }
        public void ConvertToLatest()
        {
            if (this.doc.DocumentElement.FirstChild.Name != "Version")
            {
                XmlNode node = this.doc.CreateElement("Version");
                node.InnerText = "0.0.0";
                this.doc.DocumentElement.InsertBefore(node, this.doc.DocumentElement.FirstChild);
            }

            XmlNodeList nodes;

            switch (this.doc.DocumentElement.FirstChild.InnerText)
            {
            case "0.0.0":

                nodes = this.doc.SelectNodes("//*/Node");
                EmoteNodeProperties properties = new EmoteNodeProperties();

                foreach (XmlNode node in nodes)
                {
                    if (node.SelectSingleNode("Text") != null)
                    {
                        properties.ImportKeywords(node.SelectSingleNode("Text").InnerText, 2);

                        if (node.SelectSingleNode("Properties/Keywords") == null)
                        {
                            if (node.SelectSingleNode("Properties") == null)
                            {
                                node.AppendChild(this.doc.CreateElement("Properties"));
                            }

                            XmlNode keywordsNode = this.doc.CreateElement("Keywords");
                            foreach (string keyword in properties.Keywords)
                            {
                                XmlNode k = this.doc.CreateElement("Keyword");
                                k.InnerText = keyword;
                                keywordsNode.AppendChild(k);
                            }

                            node.SelectSingleNode("Properties").AppendChild(keywordsNode);
                        }
                    }
                }

                goto case "1.5.2";

            case "1.5.2":

                this.RenameNodes(this.doc.SelectNodes("//*/RandomMessages"), "DefaultEmotes");
                this.RenameNodes(this.doc.SelectNodes("//*/Node"), "EmoteNode");

                goto case "1.5.3";

            case "1.5.3":
            case "1.6.0":
            case "1.6.1":
            case "1.6.2":
            case "1.6.3":
            case "1.6.4":
            case "1.6.5":
            case "1.7.0":

                nodes = this.doc.SelectNodes("//*/FamilyType");

                foreach (XmlNode node in nodes)
                {
                    node.InnerText = node.InnerText.Replace("Chimera", "Chimaera");
                }

                goto default;

            default:
                this.doc.DocumentElement.FirstChild.InnerText = Version.Latest.ToString();
                break;
            }
        }
Beispiel #3
0
 /// <summary>
 /// Erzeugt eine neue Instanz eines Textknotens mit vordefiniertem Text und Eigenschaften.
 /// </summary>
 /// <param name="text">Der Text, mit dem der Knoten initialisiert wird.</param>
 /// <param name="properties">Die Eigenschaften des neuen Knotens.</param>
 public EmoteNode(string text, EmoteNodeProperties properties) : this(text, properties, new List <EmoteNode>())
 {
 }