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(); }
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); * };*/ } }
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(); } } }
#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); } } }; }
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(); }