public void SaveUser(string name, Ship s) { string pass = ""; string date = ""; int[] components = { s.engineType, s.reactorType, s.shieldType, s.armorPlates[0].armorType, s.armorPlates[1].armorType, s.armorPlates[2].armorType, s.armorPlates[3].armorType }; try { reader = XmlReader.Create("world\\players\\" + name + ".xml"); while (reader.Read()) { if (reader.IsStartElement()) { switch (reader.Name) { case "Password": reader.Read(); pass = reader.Value; break; case "Date": reader.Read(); date = reader.Value; break; } } if (pass.Length > 0) { break; } } reader.Close(); settings.Indent = true; settings.OmitXmlDeclaration = true; writer = XmlWriter.Create("world\\players\\" + name + ".xml", settings); writer.WriteStartDocument(); writer.WriteStartElement("User"); { writer.WriteElementString("Password", pass); writer.WriteElementString("Date", date); writer.WriteElementString("Faction", ((byte)s.shipFaction).ToString()); writer.WriteStartElement("Ship"); { writer.WriteElementString("ShipType", ((byte)s.shipType).ToString()); writer.WriteElementString("Engine", components[0].ToString()); writer.WriteElementString("Reactor", components[1].ToString()); writer.WriteElementString("Shield", components[2].ToString()); writer.WriteElementString("ArmorFace", components[3].ToString()); writer.WriteElementString("ArmorFront", components[5].ToString()); writer.WriteElementString("ArmorLeft", components[6].ToString()); writer.WriteElementString("ArmorRight", components[4].ToString()); writer.WriteStartElement("GunSlots"); { writer.WriteElementString("Count", s.gunSlots.Length.ToString()); for (int i = 0; i < s.gunSlots.Length; i++) { if (s.gunSlots[i] != null) { writer.WriteElementString("GunType", ((byte)s.gunSlots[i].gunType).ToString()); } } } writer.WriteEndElement(); } writer.WriteEndElement(); } writer.WriteEndElement(); writer.WriteEndDocument(); writer.Close(); } catch (IOException e) { ServerCore.LogAdd("" + e); if (reader != null) { reader.Close(); } } }
private void StopLocalServer() { Core.console.AddDebugString("Closing server..."); ServerCore.GetServerCore().Stop(); Core.console.AddDebugString("Server closed"); }