Exemplo n.º 1
0
        static void Main(string[] args)
        {
            //EQStream.Debug = true;

            var running = true;
            var login   = new LoginStream("192.168.1.119", 5998);

            login.LoginSuccess += (sender, success) => {
                if (success)
                {
                    WriteLine("Login successful. Requesting server list.");
                    login.RequestServerList();
                }
                else
                {
                    WriteLine("Login failed.");
                    running = false;
                }
            };

            login.ServerList += (sender, servers) => {
                WriteLine($"Got {servers.Count} servers:");
                foreach (var server in servers)
                {
                    WriteLine($"- '{server.Longname}' @ {server.WorldIP} is {server.Status} with {server.PlayersOnline} players");
                }
                var chosen = servers[0];
                WriteLine($"Sending play request for server '{chosen.Longname}' @ {chosen.WorldIP}");
                login.Play(chosen);
            };

            login.PlaySuccess += (sender, server) => {
                if (server == null)
                {
                    WriteLine("Play request rejected.");
                    running = false;
                }
                else
                {
                    WriteLine("Play request accepted.  Initializing world.");
                    var world = new WorldStream(server?.WorldIP, 9000, login.accountID, login.sessionKey);
                    SetupWorld(world);
                }
            };

            login.Login("testacct", "testacct");

            while (running)
            {
                Thread.Sleep(100);
            }

            WriteLine("Completed.");
            ReadLine();
        }
Exemplo n.º 2
0
    void OnServerList(object sender, List <ServerListElement> list)
    {
        Debug.Log("Server List");
        //authSection.Visibility = Visibility.Hidden;
        //serverListSection.Visibility = Visibility.Visible;

        // Sort this list first.
        list = list.OrderByDescending(a => a.ServerListID).ThenBy(b => b.Status).ThenByDescending(c => c.PlayersOnline).ThenBy(d => d.Longname).ToList();

        //var i = 0;

        foreach (var server in list)
        {
            //Debug.Log(server.Longname + " - " + server.WorldIP);
            if (server.Longname.Equals(ServerToJoin))
            {
                serverSelected = server;
                Debug.Log("Joining " + ServerToJoin + server);

                /*if (serverSelected.WorldIP.Equals("127.0.0.1")) {
                 *  Debug.Log("Changing world IP since it's localhost");
                 *  serverSelected.WorldIP = "192.168.1.100";
                 * }*/
                login.Play(serverSelected);
            }
            //Debug.Log(server.Longname);

            /*serverGrid.RowDefinitions.Add(new StripDefinition(StripType.Fixed, 25));
             * var namefield = new TextBlock { Text = server.Longname, Font = serverNameHeader.Font, TextSize = serverNameHeader.TextSize, TextColor = serverNameHeader.TextColor };
             * namefield.SetGridColumn(0);
             * namefield.SetGridRow(i);
             * serverGrid.Children.Add(namefield);
             * var statusfield = new TextBlock { Text = server.Status == ServerStatus.Up ? server.PlayersOnline.ToString() : "Down", Font = serverNameHeader.Font, TextSize = serverNameHeader.TextSize, TextColor = serverNameHeader.TextColor };
             * statusfield.SetGridColumn(1);
             * statusfield.SetGridRow(i);
             * serverGrid.Children.Add(statusfield);
             * var serverButton = new Button { MouseOverImage = loginButton.MouseOverImage, NotPressedImage = loginButton.NotPressedImage, PressedImage = loginButton.PressedImage };
             * var buttonLabel = new TextBlock { Text = "Play", Font = serverNameHeader.Font, TextSize = 8, TextColor = serverNameHeader.TextColor, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center };
             * serverButton.Content = buttonLabel;
             * serverButton.SetGridColumn(2);
             * serverButton.SetGridRow(i++);
             * serverGrid.Children.Add(serverButton);
             * serverButton.Click += (s, e) => {
             *  ((Button)s).IsEnabled = false;
             *  Console.UnityEngine.Debug.Log($"Sending play request for {server.Longname}");
             *  login.Play(server);
             * };*/
        }
    }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            while (true)
            {
                var loginStream = new LoginStream(args[0], int.Parse(args[1]));
                loginStream.LoginSuccess += (_, success) => {
                    if (success)
                    {
                        WriteLine($"Login succeeded (accountID={loginStream.AccountID}).  Requesting server list");
                        loginStream.RequestServerList();
                    }
                    else
                    {
                        WriteLine("Login failed");
                        loginStream.Disconnect();
                    }
                };

                loginStream.ServerList += (_, servers) => {
                    servers.ForEach((serv, i) =>
                                    WriteLine($"{i + 1}: {serv.Longname} ({serv.PlayersOnline} players online)"));
                    int ret;
                    while (!int.TryParse(Input("Server number"), out ret) || ret < 1 || servers.Count < ret)
                    {
                    }
                    loginStream.Play(servers[ret - 1]);
                };

                loginStream.PlaySuccess += (_, server) => {
                    if (server == null)
                    {
                        WriteLine("Failed to connect to server.  Try everything again.");
                        loginStream.Disconnect();
                        return;
                    }

                    ConnectWorld(loginStream, server.Value);
                };

                loginStream.Login(Input("Username"), Input("Password"));

                while (!loginStream.Disconnecting)
                {
                    Task.Delay(100).Wait();
                }
            }
        }
Exemplo n.º 4
0
#pragma warning restore 0649

        public override void Setup()
        {
            authSection.Visibility       = Visibility.Visible;
            serverListSection.Visibility = Visibility.Hidden;

            login = new LoginStream(OpenEQConfiguration.Instance.LoginServerAddress, OpenEQConfiguration.Instance.LoginServerPort);

            loginButton.Click += (sender, e) => {
                loginButton.IsEnabled = false;
                login.Login(username.Text, password.Text);
                status.Text = "Sending login...";
            };

            login.LoginSuccess += (sender, success) => {
                if (success)
                {
                    status.Text = "Login successful. Retrieving server list.";
                    login.RequestServerList();
                }
                else
                {
                    status.Text           = "Login failed.";
                    loginButton.IsEnabled = true;
                }
            };

            login.ServerList += (sender, list) => {
                authSection.Visibility       = Visibility.Hidden;
                serverListSection.Visibility = Visibility.Visible;

                // Sort this list first.
                list = list.OrderByDescending(a => a.ServerListID).ThenBy(b => b.Status).ThenByDescending(c => c.PlayersOnline).ThenBy(d => d.Longname).ToList();

                var i = 0;
                foreach (var server in list)
                {
                    serverGrid.RowDefinitions.Add(new StripDefinition(StripType.Fixed, 25));
                    var namefield = new TextBlock {
                        Text = server.Longname, Font = serverNameHeader.Font, TextSize = serverNameHeader.TextSize, TextColor = serverNameHeader.TextColor
                    };
                    namefield.SetGridColumn(0);
                    namefield.SetGridRow(i);
                    serverGrid.Children.Add(namefield);
                    var statusfield = new TextBlock {
                        Text = server.Status == ServerStatus.Up ? server.PlayersOnline.ToString() : "Down", Font = serverNameHeader.Font, TextSize = serverNameHeader.TextSize, TextColor = serverNameHeader.TextColor
                    };
                    statusfield.SetGridColumn(1);
                    statusfield.SetGridRow(i);
                    serverGrid.Children.Add(statusfield);
                    var serverButton = new Button {
                        MouseOverImage = loginButton.MouseOverImage, NotPressedImage = loginButton.NotPressedImage, PressedImage = loginButton.PressedImage
                    };
                    var buttonLabel = new TextBlock {
                        Text = "Play", Font = serverNameHeader.Font, TextSize = 8, TextColor = serverNameHeader.TextColor, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center
                    };
                    serverButton.Content = buttonLabel;
                    serverButton.SetGridColumn(2);
                    serverButton.SetGridRow(i++);
                    serverGrid.Children.Add(serverButton);
                    serverButton.Click += (s, e) => {
                        ((Button)s).IsEnabled = false;
                        Console.WriteLine($"Sending play request for {server.Longname}");
                        login.Play(server);
                    };
                }
            };

            login.PlaySuccess += (sender, server) => {
                Console.WriteLine($"Play response: { server }");
                if (server == null)
                {
                    return;
                }

                SceneSystem.SceneInstance.Scene = Content.Load <Scene>("WorldScene");
                var wui = SceneSystem.SceneInstance.Scene.Entities.Where(x => x.Name == "WorldDialog").First();
                foreach (var comp in wui.Components)
                {
                    if (comp is WorldScript)
                    {
                        ((WorldScript)comp).world = new WorldStream(server.Value.WorldIP, 9000, login.accountID, login.sessionKey);
                    }
                }
            };
        }
Exemplo n.º 5
0
        static void Main(string[] args)
        {
            var _waitForLogin = new AutoResetEvent(false);

            //EQStream.Debug = true;

            var running = true;
            var login   = new LoginStream("127.0.0.1", 5999);

            login.LoginSuccess += (sender, success) => {
                if (success)
                {
                    WriteLine("Login successful. Requesting server list.");
                    login.RequestServerList();
                }
                else
                {
                    WriteLine("Login failed.");
                    running = false;
                }
            };

            login.ServerList += (sender, servers) => {
                WriteLine($"Got {servers.Count} servers:");
                foreach (var server in servers)
                {
                    WriteLine(
                        $"- '{server.Longname}' @ {server.WorldIP} is {server.Status} with {server.PlayersOnline} players");
                }

                var chosen = servers.First(s => s.Longname.Contains("Ex1Gj0"));
                //var chosen = servers[0];
                WriteLine($"Sending play request for server '{chosen.Longname}' @ {chosen.WorldIP}");
                login.Play(chosen);
            };

            login.PlaySuccess += (sender, server) => {
                if (server == null)
                {
                    WriteLine("Play request rejected.");
                    running = false;
                }
                else
                {
                    WriteLine("Play request accepted.  Initializing world.");
                    var world = new WorldStream(server?.WorldIP, 9000, login.accountID, login.sessionKey);
                    SetupWorld(world);
                }
            };

            login.Login("daeken", "omgwtfbbq");

            //_waitForLogin.WaitOne();
            while (running)
            {
                Thread.Sleep(100);
            }

            WriteLine("Completed.");
            ReadLine();
        }