public void Filters() { using (var client = new Facepunch.Steamworks.Client(252490)) { var filter = new Facepunch.Steamworks.ServerList.Filter(); filter.Add("map", "barren"); var query = client.ServerList.Internet(filter); while (true) { client.Update(); System.Threading.Thread.Sleep(2); if (query.Finished) { break; } } foreach (var x in query.Responded) { Assert.AreEqual(x.Map.ToLower(), "barren"); } query.Dispose(); for (int i = 0; i < 100; i++) { client.Update(); System.Threading.Thread.Sleep(1); } } }
public void InternetList() { using (var client = new Facepunch.Steamworks.Client(252490)) { var filter = new Facepunch.Steamworks.ServerList.Filter(); filter.Add("appid", client.AppId.ToString()); filter.Add("gamedir", "rust"); filter.Add("secure", "1"); var query = client.ServerList.Internet(filter); for (int i = 0; i < 1000; i++) { client.Update(); System.Threading.Thread.Sleep(100); foreach (var s in query.Responded) { Assert.AreEqual(s.AppId, client.AppId); Assert.AreEqual(s.GameDir, "rust"); } if (query.Finished) { break; } } Assert.IsTrue(query.Responded.Count > 0); Console.WriteLine("Responded: " + query.Responded.Count.ToString()); Console.WriteLine("Unresponsive: " + query.Unresponsive.Count.ToString()); foreach (var server in query.Responded.Take(20)) { Console.WriteLine("{0} {1}", server.Address, server.Name); } query.Dispose(); for (int i = 0; i < 100; i++) { client.Update(); System.Threading.Thread.Sleep(1); } } }
public void LocalList() { using (var client = new Facepunch.Steamworks.Client(252490)) { var filter = new Facepunch.Steamworks.ServerList.Filter(); filter.Add("appid", client.AppId.ToString()); filter.Add("gamedir", "rust"); filter.Add("secure", "1"); var query = client.ServerList.Local(filter); while (true) { client.Update(); System.Threading.Thread.Sleep(2); if (query.Finished) { break; } } Console.WriteLine("Responded: " + query.Responded.Count.ToString()); Console.WriteLine("Unresponsive: " + query.Unresponsive.Count.ToString()); foreach (var x in query.Responded) { Console.WriteLine(x.Map); } query.Dispose(); for (int i = 0; i < 100; i++) { client.Update(); System.Threading.Thread.Sleep(1); } } }
public void MultipleInternetList() { using (var client = new Facepunch.Steamworks.Client(252490)) { var queries = new List <Facepunch.Steamworks.ServerList.Request>(); var filter = new Facepunch.Steamworks.ServerList.Filter(); filter.Add("map", "barren"); for (int i = 0; i < 10; i++) { queries.Add(client.ServerList.Internet(filter)); } for (int i = 0; i < 100; i++) { client.Update(); System.Threading.Thread.Sleep(5); if (queries.Any(x => x.Finished)) { break; } } foreach (var query in queries) { Console.WriteLine("Responded: " + query.Responded.Count.ToString()); Console.WriteLine("Unresponsive: " + query.Unresponsive.Count.ToString()); client.Update(); query.Dispose(); client.Update(); } } }
public void Rules() { using (var client = new Facepunch.Steamworks.Client(252490)) { var filter = new Facepunch.Steamworks.ServerList.Filter(); filter.Add("appid", client.AppId.ToString()); filter.Add("gamedir", "rust"); filter.Add("secure", "1"); filter.Add("addr", "185.97.254.146"); using (var query = client.ServerList.Internet(filter)) { for (int i = 0; i < 1000; i++) { GC.Collect(); client.Update(); GC.Collect(); System.Threading.Thread.Sleep(10); // if ( query.Responded.Count > 20 ) // break; if (query.Finished) { break; } } query.Dispose(); var servers = query.Responded.Take(100); foreach (var server in servers) { server.FetchRules(); int i = 0; while (!server.HasRules) { i++; client.Update(); System.Threading.Thread.Sleep(10); if (i > 100) { break; } } if (server.HasRules) { Console.WriteLine(""); Console.WriteLine(""); Console.WriteLine(server.Address); Console.WriteLine(""); foreach (var rule in server.Rules) { Console.WriteLine(rule.Key + " = " + rule.Value); } } else { Console.WriteLine("SERVER HAS NO RULES :("); } } } } }