Exemplo n.º 1
0
        private void ConnectRA()
        {
            TCManager manager = TCManager.Instance;

            if (manager.RAClient != null)
            {
                ((TCPClient)manager.RAClient).Dispose();
            }

            manager.RAClient = new TCPClient(Settings.Default.RAHost, Settings.Default.RAPort);

            TCPClient client = (TCPClient)manager.RAClient;

            try
            {
                client.Connect();
                client.TCConnected       += _raClient_TCConnected;
                client.TCDisconnected    += _raClient_TCDisconnected;
                client.TCMessageReceived += _raClient_TCMessageReceived;
            }
            catch (Exception ex)
            {
                client.Dispose();

                MessageBoxEx.Show(this, "Could not connect to RA! (" + ex.Message + ")", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Exemplo n.º 2
0
        private void startServerButton_Click(object sender, EventArgs e)
        {
            TCManager inst = TCManager.Instance;


            if (!File.Exists(Path.Combine(Settings.Default.ServerFolder, "authserver.exe")))
            {
                MessageBoxEx.Show(this, "The file authserver.exe does not exist!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }

            if (!File.Exists(Path.Combine(Settings.Default.ServerFolder, "worldserver.exe")))
            {
                MessageBoxEx.Show(this, "The file worldserver.exe does not exist!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

                return;
            }

            if (inst.AuthClient != null)
            {
                if (inst.AuthClient.IsOnline)
                {
                    if (MessageBoxEx.Show(this, "Authserver is already running! Kill it?", "Already running", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.No)
                    {
                        return;
                    }

                    ProcessHelper.KillProcess(((LocalClient)inst.AuthClient).UnderlyingProcessId);
                }
            }

            if (inst.WorldClient != null)
            {
                if (inst.WorldClient.IsOnline)
                {
                    if (MessageBoxEx.Show(this, "Worldserver is already running! Kill it?", "Already running", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.No)
                    {
                        return;
                    }

                    ProcessHelper.KillProcess(((LocalClient)inst.WorldClient).UnderlyingProcessId);
                }
            }

            consoleTextBox.Text = String.Empty;

            var authClient  = new LocalClient(Path.Combine(Settings.Default.ServerFolder, "authserver.exe"));
            var worldClient = new LocalClient(Path.Combine(Settings.Default.ServerFolder, "worldserver.exe"));

            inst.AuthClient  = authClient;
            inst.WorldClient = worldClient;

            inst.AuthClient.Start();
            inst.WorldClient.Start();

            stopServerButton.Enabled  = true;
            startServerButton.Enabled = false;

            var authProc  = authClient.UnderlyingProcess;
            var worldProc = worldClient.UnderlyingProcess;

            worldProc.Exited += worldProc_Exited;
            authProc.Exited  += authProc_Exited;

            worldProc.BeginErrorReadLine();
            worldProc.BeginOutputReadLine();

            worldProc.ErrorDataReceived  += worldProc_DataReceived;
            worldProc.OutputDataReceived += worldProc_OutputDataReceived;

            authServerLabel.Image  = Resources.agt_action_success_16;
            worldServerLabel.Image = Resources.agt_action_success_16;
        }