/// <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; } }
/// <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>()) { }