private void ChooseClient() { options.UseOT = uxUseOT.Checked; LoginServer ls = null; if (options.UseOT) { string[] split = uxLoginServer.Text.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); if (split.Length == 2) ls = new LoginServer(split[0].Trim(), short.Parse(split[1])); else ls = new LoginServer(uxLoginServer.Text.Trim(), 7171); } client = ClientChooserBase.ChooseClient(options, uxClients.SelectedItem, ls); newClientChooser.Dispose(); }
public static void SaveOtServer(string location, LoginServer ot, string version) { XmlDocument document = new XmlDocument(); XmlElement servers = null; bool exists = false; if (File.Exists(location)) { document.Load(location); servers = document["servers"]; foreach (XmlElement clientPath in servers) { if (clientPath.GetAttribute("ip").Equals(ot.Server) && clientPath.GetAttribute("port").Equals(ot.Port.ToString())) { exists = true; break; } } } else { XmlDeclaration Declaration = document.CreateXmlDeclaration("1.0", "", ""); document.AppendChild(Declaration); servers = document.CreateElement("servers"); document.AppendChild(servers); } if (!exists) { XmlElement server = document.CreateElement("server"); XmlAttribute ipAttr = document.CreateAttribute("ip"); ipAttr.InnerText = ot.Server; XmlAttribute portAttr = document.CreateAttribute("port"); portAttr.InnerText = ot.Port.ToString(); XmlAttribute versionAttr = document.CreateAttribute("version"); versionAttr.InnerText = version; server.Attributes.Append(ipAttr); server.Attributes.Append(portAttr); server.Attributes.Append(versionAttr); servers.AppendChild(server); if (!Directory.Exists(Constants.AppDataPath)) Directory.CreateDirectory(Constants.AppDataPath); document.Save(location); } }
public static Client ChooseClient(ClientChooserOptions options, object selectedItem, LoginServer loginServer) { Client client = null; if (selectedItem.GetType() == typeof(string)) { switch ((string)selectedItem) { case NewClientDefaultText: client = Client.OpenMC(); break; case NewClientCustomText: OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "Executable files (*.exe)|*.exe|All files (*.*)|*.*"; dialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles); dialog.Title = "Select a Tibia client executable"; if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(dialog.FileName); if (fvi.ProductName.Equals("Tibia Player")) { client = Client.Open(dialog.FileName, options.Arguments); if (options.SaveClientPath == true) { ClientChooserBase.SaveClientPath( options.SavedClientPathsLocation, dialog.FileName, fvi.FileVersion); } } else { client = null; } } else { client = null; } break; } } else if (selectedItem.GetType() == typeof(ClientPathInfo)) { string clientPath = ((ClientPathInfo)selectedItem).Path; client = Client.OpenMC(clientPath, options.Arguments); } else { client = (Client)selectedItem; } // Set OT server if (client != null) { if (options.UseOT) { client.LoginServers = new LoginServer[] { loginServer }; client.IsOpenTibiaServer = true; client.WindowText = string.Format("SharpMapTracker - {0}:{1}", loginServer.Server, loginServer.Port); SaveOtServer(options.SavedServersLocation, loginServer, client.Version.FileVersion); } else { client.WindowText = "SharpMapTracker - Global"; } // Set client to run on one processor if instructed by the user if (options.UseSingleProcessor) client.Process.ProcessorAffinity = (IntPtr)1; } return client; }
private void ChooseClient() { options.UseOT = uxUseOT.IsExpanded; LoginServer ls = null; if (options.UseOT) { string[] split = uxLoginServer.Text.Split(new char[] { ':' }); ls = new LoginServer(split[0], short.Parse(split[1])); } client = ClientChooserBase.ChooseClient(options, uxClients.SelectedItem, ls); newClientChooser.Close(); }