コード例 #1
0
ファイル: ClientChooser.cs プロジェクト: FaNtA91/pokemonapi
        /// <summary>
        /// Open a box to pick a client with the desired options.
        /// </summary>
        /// <param name="options"></param>
        /// <returns></returns>
        public static Client ShowBox(ClientChooserOptions options)
        {
            List<Objects.Client> clients = null;
            if (options.LookUpClients)
            {
                clients = Objects.Client.GetClients(options.Version, options.OfflineOnly);
            }
            if (options.Smart &&
                options.LookUpClients &&
                !options.ShowOTOption &&
                clients != null &&
                clients.Count == 1)
            {
                return clients[0];
            }
            else
            {
                newClientChooser = new ClientChooser();
                newClientChooser.Text = String.IsNullOrEmpty(options.Title) ? "Choose a client." : options.Title;

                if (options.LookUpClients)
                {
                    foreach (Client c in clients)
                    {
                        newClientChooser.uxClients.Items.Add(c);
                    }
                }

                if (File.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), @"Tibia\Pokemon.exe")))
                {
                    newClientChooser.uxClients.Items.Add(ClientChooserBase.NewClientDefaultText);
                }

                foreach (ClientPathInfo cpi in
                    ClientChooserBase.GetClientPaths(options.SavedClientPathsLocation))
                {
                    newClientChooser.uxClients.Items.Add(cpi);
                }

                newClientChooser.uxClients.Items.Add(ClientChooserBase.NewClientCustomText);
                newClientChooser.uxClients.SelectedIndex = 0;

                foreach (var ot in ClientChooserBase.GetServers(options.SavedServersLocation))
                {
                    newClientChooser.uxLoginServer.Items.Add(ot.LoginServer.Server + ":" + ot.LoginServer.Port);
                }

                if (newClientChooser.uxLoginServer.Items.Count > 0)
                    newClientChooser.uxLoginServer.SelectedIndex = 0;

                if (options.ShowOTOption)
                {
                    newClientChooser.Height = 109;
                    newClientChooser.uxUseOT.Checked = options.UseOT;
                    newClientChooser.SetOTState();
                    newClientChooser.uxLoginServer.Text = options.Server + ":" + options.Port.ToString();
                }
                else
                {
                    newClientChooser.Height = 54;
                }


                if (options.ShowOTOption)
                {
                    newClientChooser.Height = 54; //109
                    newClientChooser.uxUseOT.Checked = options.UseOT;
                    newClientChooser.SetOTState();
                    newClientChooser.uxLoginServer.Text = options.Server + ":" + options.Port.ToString();
                }
                else
                {
                    newClientChooser.Height = 54;
                }

                newClientChooser.options = options;
                newClientChooser.TopMost = options.Topmost;
                newClientChooser.ShowDialog();
                return client;
            }
        }
コード例 #2
0
        /// <summary>
        /// Open a box to pick a client with the desired options.
        /// </summary>
        /// <param name="options"></param>
        /// <returns></returns>
        public static Client ShowBox(ClientChooserOptions options)
        {
            List <Objects.Client> clients = null;

            if (options.LookUpClients)
            {
                clients = Objects.Client.GetClients(options.Version, options.OfflineOnly);
            }
            if (options.Smart &&
                options.LookUpClients &&
                !options.ShowOTOption &&
                clients != null &&
                clients.Count == 1)
            {
                return(clients[0]);
            }
            else
            {
                newClientChooser      = new ClientChooser();
                newClientChooser.Text = String.IsNullOrEmpty(options.Title) ? "Choose a client." : options.Title;

                if (options.LookUpClients)
                {
                    foreach (Client c in clients)
                    {
                        newClientChooser.uxClients.Items.Add(c);
                    }
                }

                if (File.Exists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), @"Tibia\Pokemon.exe")))
                {
                    newClientChooser.uxClients.Items.Add(ClientChooserBase.NewClientDefaultText);
                }

                foreach (ClientPathInfo cpi in
                         ClientChooserBase.GetClientPaths(options.SavedClientPathsLocation))
                {
                    newClientChooser.uxClients.Items.Add(cpi);
                }

                newClientChooser.uxClients.Items.Add(ClientChooserBase.NewClientCustomText);
                newClientChooser.uxClients.SelectedIndex = 0;

                foreach (var ot in ClientChooserBase.GetServers(options.SavedServersLocation))
                {
                    newClientChooser.uxLoginServer.Items.Add(ot.LoginServer.Server + ":" + ot.LoginServer.Port);
                }

                if (newClientChooser.uxLoginServer.Items.Count > 0)
                {
                    newClientChooser.uxLoginServer.SelectedIndex = 0;
                }

                if (options.ShowOTOption)
                {
                    newClientChooser.Height          = 109;
                    newClientChooser.uxUseOT.Checked = options.UseOT;
                    newClientChooser.SetOTState();
                    newClientChooser.uxLoginServer.Text = options.Server + ":" + options.Port.ToString();
                }
                else
                {
                    newClientChooser.Height = 54;
                }


                if (options.ShowOTOption)
                {
                    newClientChooser.Height          = 54; //109
                    newClientChooser.uxUseOT.Checked = options.UseOT;
                    newClientChooser.SetOTState();
                    newClientChooser.uxLoginServer.Text = options.Server + ":" + options.Port.ToString();
                }
                else
                {
                    newClientChooser.Height = 54;
                }

                newClientChooser.options = options;
                newClientChooser.TopMost = options.Topmost;
                newClientChooser.ShowDialog();
                return(client);
            }
        }
コード例 #3
0
        public static Client ChooseClient(ClientChooserOptions options, object selectedItem, LoginServer ls)
        {
            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 Poke Games client executable";
                        if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                        {
                            FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(dialog.FileName);
                            if (fvi.ProductName.Equals("Poke Games"))
                            {
                                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;
               // Version.Set(FileVersionInfo.GetVersionInfo(clientPath).FileVersion);
                client = Client.OpenMC(clientPath, options.Arguments);
            }
            else
            {
                client = (Client)selectedItem;
            }

            // Set addresses
            if (client != null)
                Version.Set(client.GetVersion());

            // Set OT server
            if (client != null && options.UseOT)
            {
                client.Login.SetOT(ls);
                SaveOtServer(options.SavedServersLocation, ls, client.GetVersion());
            }
            
            // Set client to run on one processor if instructed by the user
            if (options.UseSingleProcessor)
                client.Process.ProcessorAffinity = (IntPtr)1;

            return client;
        }
コード例 #4
0
        public static Client ChooseClient(ClientChooserOptions options, object selectedItem, LoginServer ls)
        {
            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 Poke Games client executable";
                    if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                    {
                        FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(dialog.FileName);
                        if (fvi.ProductName.Equals("Poke Games"))
                        {
                            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;
                // Version.Set(FileVersionInfo.GetVersionInfo(clientPath).FileVersion);
                client = Client.OpenMC(clientPath, options.Arguments);
            }
            else
            {
                client = (Client)selectedItem;
            }

            // Set addresses
            if (client != null)
            {
                Version.Set(client.GetVersion());
            }

            // Set OT server
            if (client != null && options.UseOT)
            {
                client.Login.SetOT(ls);
                SaveOtServer(options.SavedServersLocation, ls, client.GetVersion());
            }

            // Set client to run on one processor if instructed by the user
            if (options.UseSingleProcessor)
            {
                client.Process.ProcessorAffinity = (IntPtr)1;
            }

            return(client);
        }