From 85bc78438f77f7a49f335c28f150884f1cd967a0 Mon Sep 17 00:00:00 2001 From: Battlefield Duck Date: Tue, 23 Jan 2024 05:17:15 +0800 Subject: [PATCH] Update Epic Online Services (EOS) Protocol --- OpenGSQ/Protocols/EOS.cs | 117 ++- OpenGSQTests/Protocols/EOSTests.cs | 33 +- .../Results/EOSTests/GetInfoTest.json | 8 +- .../EOSTests/GetMatchmakingAsyncTest.json | 754 +++++++++++++++++ docs/tests/EOSTests/EOSTests.md | 2 + docs/tests/EOSTests/GetInfoTest.md | 8 +- .../tests/EOSTests/GetMatchmakingAsyncTest.md | 764 ++++++++++++++++++ docs/tests/toc.yml | 2 + 8 files changed, 1637 insertions(+), 51 deletions(-) create mode 100644 OpenGSQTests/Results/EOSTests/GetMatchmakingAsyncTest.json create mode 100644 docs/tests/EOSTests/GetMatchmakingAsyncTest.md diff --git a/OpenGSQ/Protocols/EOS.cs b/OpenGSQ/Protocols/EOS.cs index 921eb16..6578452 100644 --- a/OpenGSQ/Protocols/EOS.cs +++ b/OpenGSQ/Protocols/EOS.cs @@ -20,42 +20,47 @@ public class EOS : ProtocolBase /// public override string FullName => "Epic Online Services (EOS) Protocol"; - private readonly string _apiUrl = "https://api.epicgames.dev"; - private readonly string _clientId; - private readonly string _clientSecret; + private static readonly string _apiUrl = "https://api.epicgames.dev"; private readonly string _deploymentId; - private string _accessToken; + private readonly string _accessToken; /// /// Initializes a new instance of the EOS class. /// - /// The host to connect to. - /// The port to connect to. - /// The connection timeout in milliseconds. Default is 5 seconds. - /// The client ID for authentication. - /// The client secret for authentication. - /// The deployment ID for authentication. - public EOS(string host, int port, int timeout = 5000, string clientId = null, string clientSecret = null, string deploymentId = null) : base(host, port, timeout) + /// The host name of the server. + /// The port number of the server. + /// The timeout value for the connection, in milliseconds. Default is 5000. + /// The deployment ID for the application. + /// The access token for the application. + /// Thrown when either deploymentId or accessToken is null. + public EOS(string host, int port, int timeout = 5000, string deploymentId = null, string accessToken = null) : base(host, port, timeout) { - if (clientId == null || clientSecret == null || deploymentId == null) + if (deploymentId == null || accessToken == null) { - throw new ArgumentException("clientId, clientSecret, and deploymentId must not be null"); + throw new ArgumentException("deploymentId, and accessToken must not be null"); } - _clientId = clientId; - _clientSecret = clientSecret; _deploymentId = deploymentId; + _accessToken = accessToken; } /// /// Asynchronously gets an access token. /// /// A task that represents the asynchronous operation. The task result contains the access token. - protected async Task GetAccessTokenAsync() + public static async Task GetAccessTokenAsync(string clientId, string clientSecret, string deploymentId, string grantType, string externalAuthType, string externalAuthToken) { string url = $"{_apiUrl}/auth/v1/oauth/token"; - string body = $"grant_type=client_credentials&deployment_id={_deploymentId}"; - string authInfo = $"{_clientId}:{_clientSecret}"; + + var queryString = System.Web.HttpUtility.ParseQueryString(string.Empty); + queryString.Add("grant_type", grantType); + queryString.Add("external_auth_type", externalAuthType); + queryString.Add("external_auth_token", externalAuthToken); + queryString.Add("nonce", "opengsq"); + queryString.Add("deployment_id", deploymentId); + queryString.Add("display_name", "User"); + + string authInfo = $"{clientId}:{clientSecret}"; authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo)); using (var client = new HttpClient() @@ -67,7 +72,7 @@ protected async Task GetAccessTokenAsync() } }) { - HttpResponseMessage response = await client.PostAsync(url, new StringContent(body, Encoding.UTF8, "application/x-www-form-urlencoded")); + HttpResponseMessage response = await client.PostAsync(url, new StringContent(queryString.ToString(), Encoding.UTF8, "application/x-www-form-urlencoded")); response.EnsureSuccessStatusCode(); var data = await response.Content.ReadFromJsonAsync>(); @@ -77,41 +82,81 @@ protected async Task GetAccessTokenAsync() } /// - /// Retrieves matchmaking data asynchronously. + /// Asynchronously retrieves an external authentication token. /// - /// The data to be sent to the server. - /// - /// A task that represents the asynchronous operation. The task result contains the matchmaking data. - /// - /// Thrown when there is a failure in getting the access token. - public async Task GetMatchmakingAsync(Dictionary data) + /// The client ID. + /// The client secret. + /// The type of external authentication. + /// A task that represents the asynchronous operation. The task result contains the access token. + /// Thrown when either clientId or clientSecret is null. + /// Thrown when the provided externalAuthType hasn't been implemented yet. + public static async Task GetExternalAuthTokenAsync(string clientId, string clientSecret, string externalAuthType) { - if (_accessToken == null) + if (externalAuthType == "deviceid_access_token") { - try + string url = $"{_apiUrl}/auth/v1/accounts/deviceid"; + + var queryString = System.Web.HttpUtility.ParseQueryString(string.Empty); + queryString.Add("deviceModel", "PC"); + + string authInfo = $"{clientId}:{clientSecret}"; + authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo)); + + using (var client = new HttpClient() { - _accessToken = await GetAccessTokenAsync(); - } - catch (Exception ex) + BaseAddress = new Uri(url), + DefaultRequestHeaders = + { + Authorization = new AuthenticationHeaderValue("Basic", authInfo) + } + }) { - throw new AuthenticationException($"Failed to get access token due to an error: {ex.Message}"); + HttpResponseMessage response = await client.PostAsync(url, new StringContent(queryString.ToString(), Encoding.UTF8, "application/x-www-form-urlencoded")); + response.EnsureSuccessStatusCode(); + + var data = await response.Content.ReadFromJsonAsync>(); + + return data["access_token"].ToString(); } } - string url = $"{_apiUrl}/matchmaking/v1/{_deploymentId}/filter"; + throw new NotImplementedException($"The external authentication type '{externalAuthType}' is not supported. Please provide a supported authentication type."); + } + + /// + /// Asynchronously retrieves matchmaking data without any filter parameters. + /// + /// The deployment ID. + /// The access token. + /// A task that represents the asynchronous operation. The task result contains the matchmaking data. + public static Task GetMatchmakingAsync(string deploymentId, string accessToken) + { + return GetMatchmakingAsync(deploymentId, accessToken, new Dictionary()); + } + + /// + /// Asynchronously retrieves matchmaking data. + /// + /// The deployment ID. + /// The access token. + /// The filter parameters for the matchmaking request. + /// A task that represents the asynchronous operation. The task result contains the matchmaking data. + public static async Task GetMatchmakingAsync(string deploymentId, string accessToken, Dictionary filter) + { + string url = $"{_apiUrl}/matchmaking/v1/{deploymentId}/filter"; using (var client = new HttpClient() { BaseAddress = new Uri(url), DefaultRequestHeaders = { - Authorization = new AuthenticationHeaderValue("Bearer", _accessToken) + Authorization = new AuthenticationHeaderValue("Bearer", accessToken) } }) { client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); - HttpResponseMessage response = await client.PostAsync(url, new StringContent(JsonSerializer.Serialize(data), Encoding.UTF8, "application/json")); + HttpResponseMessage response = await client.PostAsync(url, new StringContent(JsonSerializer.Serialize(filter), Encoding.UTF8, "application/json")); response.EnsureSuccessStatusCode(); var responseData = await response.Content.ReadFromJsonAsync(); @@ -133,7 +178,7 @@ public async Task> GetInfo() string address = await GetIPAddress(); string addressBoundPort = $":{Port}"; - var data = await GetMatchmakingAsync(new Dictionary + var data = await GetMatchmakingAsync(_deploymentId, _accessToken, new Dictionary { { "criteria", new List> { diff --git a/OpenGSQTests/Protocols/EOSTests.cs b/OpenGSQTests/Protocols/EOSTests.cs index e0d5f4d..e09107a 100644 --- a/OpenGSQTests/Protocols/EOSTests.cs +++ b/OpenGSQTests/Protocols/EOSTests.cs @@ -7,13 +7,6 @@ namespace OpenGSQ.Protocols.Tests [TestClass()] public class EOSTests : TestBase { - private readonly static string clientId = "xyza7891muomRmynIIHaJB9COBKkwj6n"; - private readonly static string clientSecret = "PP5UGxysEieNfSrEicaD1N2Bb3TdXuD7xHYcsdUHZ7s"; - private readonly static string deploymentId = "ad9a8feffb3b4b2ca315546f038c3ae2"; - - // arksa - public EOS eos = new("5.62.115.46", 7783, 5000, clientId, clientSecret, deploymentId); - public EOSTests() : base(nameof(EOSTests)) { // EnableSave = true; @@ -22,7 +15,33 @@ public EOSTests() : base(nameof(EOSTests)) [TestMethod()] public async Task GetInfoTest() { + // Ark: Survival Ascended + string clientId = "xyza7891muomRmynIIHaJB9COBKkwj6n"; + string clientSecret = "PP5UGxysEieNfSrEicaD1N2Bb3TdXuD7xHYcsdUHZ7s"; + string deploymentId = "ad9a8feffb3b4b2ca315546f038c3ae2"; + string grantType = "client_credentials"; + string externalAuthType = ""; + string externalAuthToken = ""; + string accessToken = await EOS.GetAccessTokenAsync(clientId, clientSecret, deploymentId, grantType, externalAuthType, externalAuthToken); + + EOS eos = new("5.62.115.46", 7783, 5000, deploymentId, accessToken); + SaveResult(nameof(GetInfoTest), await eos.GetInfo()); } + + [TestMethod()] + public async Task GetMatchmakingAsyncTest() + { + // Palworld + string clientId = "xyza78916PZ5DF0fAahu4tnrKKyFpqRE"; + string clientSecret = "j0NapLEPm3R3EOrlQiM8cRLKq3Rt02ZVVwT0SkZstSg"; + string deploymentId = "0a18471f93d448e2a1f60e47e03d3413"; + string grantType = "external_auth"; + string externalAuthType = "deviceid_access_token"; + string externalAuthToken = await EOS.GetExternalAuthTokenAsync(clientId, clientSecret, externalAuthType); + string accessToken = await EOS.GetAccessTokenAsync(clientId, clientSecret, deploymentId, grantType, externalAuthType, externalAuthToken); + + SaveResult(nameof(GetMatchmakingAsyncTest), await EOS.GetMatchmakingAsync(deploymentId, accessToken)); + } } } \ No newline at end of file diff --git a/OpenGSQTests/Results/EOSTests/GetInfoTest.json b/OpenGSQTests/Results/EOSTests/GetInfoTest.json index 2ac4aaf..96105e9 100644 --- a/OpenGSQTests/Results/EOSTests/GetInfoTest.json +++ b/OpenGSQTests/Results/EOSTests/GetInfoTest.json @@ -15,8 +15,8 @@ "rejoinAfterKick": "", "platforms": null }, - "totalPlayers": 39, - "openPublicPlayers": 31, + "totalPlayers": 45, + "openPublicPlayers": 25, "publicPlayers": [], "started": false, "lastUpdated": null, @@ -29,11 +29,11 @@ "SERVERPASSWORD_b": false, "MATCHTIMEOUT_d": 120.0, "ENABLEDMODSFILEIDS_s": "4979340", - "DAYTIME_s": "327", + "DAYTIME_s": "328", "SOTFMATCHSTARTED_b": false, "STEELSHIELDENABLED_l": 1, "SERVERUSESBATTLEYE_b": true, - "EOSSERVERPING_l": 252, + "EOSSERVERPING_l": 246, "ALLOWDOWNLOADCHARS_l": 1, "OFFICIALSERVER_s": "1", "GAMEMODE_s": "TestGameMode_C", diff --git a/OpenGSQTests/Results/EOSTests/GetMatchmakingAsyncTest.json b/OpenGSQTests/Results/EOSTests/GetMatchmakingAsyncTest.json new file mode 100644 index 0000000..238f32d --- /dev/null +++ b/OpenGSQTests/Results/EOSTests/GetMatchmakingAsyncTest.json @@ -0,0 +1,754 @@ +{ + "Sessions": [ + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "868f81eb7df5483f8e665045aed068bd", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 10, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 10, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - sid1327452", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 35600, + "DAYS_l": 13, + "WORLDGUID_s": "D330A4AC4730FA6D4FA16DBC33977B53", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Surround Your friend ", + "CREATE_TIME_l": 1705955945, + "SERVERTIME_l": 19, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "178.212.33.32", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 10, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": true, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "178.212.33.32", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "0c388415a5ec4d4fa81dc36637c0a2e9", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 32, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 32, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - steam", + "GAMESERVER_PORT_l": 8211, + "DAYS_l": 16, + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "CREATE_TIME_l": 1705906052, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BUSESSTATS_b": false, + "WORLDGUID_s": "48C366C57CF14CED8B587FA009CBAD88", + "REGION_s": "China", + "NAME_s": "PlutoGame", + "ADDRESS_s": "212.107.28.51", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 32, + "DESCRIPTION_s": "Pluto's PalWorld Game World", + "BUILDUNIQUEID_l": 0, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "688cb5bf300c40cba721d1005d8cab76", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 16, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 16, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - TCAGame", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 7000, + "DAYS_l": 14, + "WORLDGUID_s": "AC3DB8F7416BF8BF53760C92A87EB2B2", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Pepperidge Farms Remembers", + "CREATE_TIME_l": 1705819288, + "SERVERTIME_l": 21, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "149.88.100.82", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 16, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "149.88.100.82", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 6, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "fd37b69fe86c4d25aabc356710c64df6", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 4, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 4, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - ni84373951", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 22000, + "DAYS_l": 27, + "WORLDGUID_s": "E09621D94A1ADF7A01007E8AB03D017D", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Palserver hosted by nitrado.net", + "CREATE_TIME_l": 1705938160, + "SERVERTIME_l": 25, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "85.190.153.144", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 4, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "109.230.214.204", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 1, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "b617cc5d1d03468f876f88f406ddca69", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 24, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 24, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - ni99946291", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 35000, + "DAYS_l": 17, + "WORLDGUID_s": "57D5B06F4EA67EB7C5F5E2B2754B2E50", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Amity Australia", + "CREATE_TIME_l": 1705938889, + "SERVERTIME_l": 46, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "128.0.115.156", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 24, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "128.0.115.156", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 1, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "cbb6b751da2e49bdae8df2cffcbe80f1", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 10, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 10, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - sid1336992", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 31700, + "DAYS_l": 9, + "WORLDGUID_s": "E0CB0FC84B58D0FF8458F0948A8E04EE", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Ceraphrim", + "CREATE_TIME_l": 1705928109, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "154.53.57.190", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 10, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "154.53.57.190", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "cb7b850e876144b9b512f3498989e88a", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 10, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 10, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - Eduardo", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 8211, + "DAYS_l": 21, + "WORLDGUID_s": "6AC81BE24CFB5A93D649BE927E844720", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "TroubleChute's Server", + "CREATE_TIME_l": 1705936830, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "177.200.67.204", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 10, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 3, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "9c80b28107c2496898a05cd6b32fbb7e", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 32, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 32, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - u10980", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 10980, + "DAYS_l": 3, + "WORLDGUID_s": "085C81E59D2643DD950F288577ECA8A2", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Pokermans", + "CREATE_TIME_l": 1705956245, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "54.39.49.112", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 32, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "54.39.49.112", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "cdb5fd448a5d4101a2b2086b6f6f7a14", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 8, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 8, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - TCAGameSvc7330287", + "GAMESERVER_PORT_l": 8715, + "DAYS_l": 10, + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "CREATE_TIME_l": 1705954541, + "SERVERTIME_l": 19, + "DEDICATEDONLY_b": true, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "51.195.190.147", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BUSESSTATS_b": false, + "WORLDGUID_s": "AF995C9543B09F4A6CD5D9931F1FF830", + "NAME_s": "Dnd PALS", + "ADDRESS_s": "51.195.190.147", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 8, + "DESCRIPTION_s": "Get your server at GTXGaming.co.uk - Instant Setup", + "BUILDUNIQUEID_l": 0, + "BISDEDICATED_b": true, + "PLAYERS_l": 3, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "635538dae28f400ea99ae456e2a90ec1", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 16, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 16, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - zap1167419g603776", + "GAMESERVER_PORT_l": 27042, + "DAYS_l": 24, + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "CREATE_TIME_l": 1705929991, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "147.189.173.11", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BUSESSTATS_b": false, + "WORLDGUID_s": "0F5069CBCE7D4EE7B965835A5864F581", + "NAME_s": "Server hosted by ZAP-Hosting.com", + "ADDRESS_s": "147.189.173.11", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 16, + "DESCRIPTION_s": "This Server is Hosted by ZAP-Hosting.com", + "BUILDUNIQUEID_l": 0, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "6d5728d1ea4f471cac93ae6f685c8b4a", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 32, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 32, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - CupcakeFondler", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 8211, + "DAYS_l": 1, + "WORLDGUID_s": "8696777140A84E5DA8F2D8AFDB005CCD", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Default Palworld Server", + "CREATE_TIME_l": 1705885349, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "47.224.206.116", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 32, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "2b580186b11c4be0bf37cde96cc2b4e1", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 32, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 32, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - palworld", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 8211, + "DAYS_l": 28, + "WORLDGUID_s": "8488811FEA0D47DAB5B239A93ED08EAC", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Default Palworld Server", + "CREATE_TIME_l": 1705966072, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "160.251.174.138", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 32, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "78047d86f4aa42a79adb36962e0aea3d", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 8, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 8, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - ni16269361", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 22000, + "DAYS_l": 19, + "WORLDGUID_s": "923A0F494AC656C53A91D8BFC88406EA", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Valhalla", + "CREATE_TIME_l": 1705906421, + "SERVERTIME_l": 29, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "31.214.224.166", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 8, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "85.190.162.191", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 1, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "d582acbf392a48fb96a876b1c36a917f", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 32, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 32, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - dathost", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 8211, + "DAYS_l": 18, + "WORLDGUID_s": "AB40D81BF3E14C44B77252086D78DD89", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Default Palworld Server", + "CREATE_TIME_l": 1705954574, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "79.127.216.38", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 32, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "51fff9566184450abbc0be77bc617cb8", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 10, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 10, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - sid6012946", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 29200, + "DAYS_l": 7, + "WORLDGUID_s": "7EC6C9E948AE545A2D8C11B67BFA54E4", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Bambushöhle", + "CREATE_TIME_l": 1705950513, + "SERVERTIME_l": 23, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "92.204.252.54", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 10, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "92.204.252.54", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 3, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + } + ], + "Count": 14478 +} \ No newline at end of file diff --git a/docs/tests/EOSTests/EOSTests.md b/docs/tests/EOSTests/EOSTests.md index dc3d22e..5e44606 100644 --- a/docs/tests/EOSTests/EOSTests.md +++ b/docs/tests/EOSTests/EOSTests.md @@ -8,3 +8,5 @@ uid: OpenGSQ.Protocols.Tests.EOSTests GetInfoTest +GetMatchmakingAsyncTest + diff --git a/docs/tests/EOSTests/GetInfoTest.md b/docs/tests/EOSTests/GetInfoTest.md index 6577a8e..469ae2d 100644 --- a/docs/tests/EOSTests/GetInfoTest.md +++ b/docs/tests/EOSTests/GetInfoTest.md @@ -24,8 +24,8 @@ Here are the results for the test method. "rejoinAfterKick": "", "platforms": null }, - "totalPlayers": 39, - "openPublicPlayers": 31, + "totalPlayers": 45, + "openPublicPlayers": 25, "publicPlayers": [], "started": false, "lastUpdated": null, @@ -38,11 +38,11 @@ Here are the results for the test method. "SERVERPASSWORD_b": false, "MATCHTIMEOUT_d": 120.0, "ENABLEDMODSFILEIDS_s": "4979340", - "DAYTIME_s": "327", + "DAYTIME_s": "328", "SOTFMATCHSTARTED_b": false, "STEELSHIELDENABLED_l": 1, "SERVERUSESBATTLEYE_b": true, - "EOSSERVERPING_l": 252, + "EOSSERVERPING_l": 246, "ALLOWDOWNLOADCHARS_l": 1, "OFFICIALSERVER_s": "1", "GAMEMODE_s": "TestGameMode_C", diff --git a/docs/tests/EOSTests/GetMatchmakingAsyncTest.md b/docs/tests/EOSTests/GetMatchmakingAsyncTest.md new file mode 100644 index 0000000..05a151f --- /dev/null +++ b/docs/tests/EOSTests/GetMatchmakingAsyncTest.md @@ -0,0 +1,764 @@ +--- +uid: OpenGSQ.Protocols.Tests.EOSTests.GetMatchmakingAsyncTest +--- + +# Test Method GetMatchmakingAsyncTest + +Here are the results for the test method. + +```json +{ + "Sessions": [ + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "868f81eb7df5483f8e665045aed068bd", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 10, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 10, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - sid1327452", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 35600, + "DAYS_l": 13, + "WORLDGUID_s": "D330A4AC4730FA6D4FA16DBC33977B53", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Surround Your friend ", + "CREATE_TIME_l": 1705955945, + "SERVERTIME_l": 19, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "178.212.33.32", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 10, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": true, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "178.212.33.32", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "0c388415a5ec4d4fa81dc36637c0a2e9", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 32, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 32, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - steam", + "GAMESERVER_PORT_l": 8211, + "DAYS_l": 16, + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "CREATE_TIME_l": 1705906052, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BUSESSTATS_b": false, + "WORLDGUID_s": "48C366C57CF14CED8B587FA009CBAD88", + "REGION_s": "China", + "NAME_s": "PlutoGame", + "ADDRESS_s": "212.107.28.51", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 32, + "DESCRIPTION_s": "Pluto's PalWorld Game World", + "BUILDUNIQUEID_l": 0, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "688cb5bf300c40cba721d1005d8cab76", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 16, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 16, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - TCAGame", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 7000, + "DAYS_l": 14, + "WORLDGUID_s": "AC3DB8F7416BF8BF53760C92A87EB2B2", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Pepperidge Farms Remembers", + "CREATE_TIME_l": 1705819288, + "SERVERTIME_l": 21, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "149.88.100.82", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 16, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "149.88.100.82", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 6, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "fd37b69fe86c4d25aabc356710c64df6", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 4, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 4, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - ni84373951", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 22000, + "DAYS_l": 27, + "WORLDGUID_s": "E09621D94A1ADF7A01007E8AB03D017D", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Palserver hosted by nitrado.net", + "CREATE_TIME_l": 1705938160, + "SERVERTIME_l": 25, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "85.190.153.144", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 4, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "109.230.214.204", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 1, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "b617cc5d1d03468f876f88f406ddca69", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 24, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 24, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - ni99946291", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 35000, + "DAYS_l": 17, + "WORLDGUID_s": "57D5B06F4EA67EB7C5F5E2B2754B2E50", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Amity Australia", + "CREATE_TIME_l": 1705938889, + "SERVERTIME_l": 46, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "128.0.115.156", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 24, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "128.0.115.156", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 1, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "cbb6b751da2e49bdae8df2cffcbe80f1", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 10, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 10, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - sid1336992", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 31700, + "DAYS_l": 9, + "WORLDGUID_s": "E0CB0FC84B58D0FF8458F0948A8E04EE", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Ceraphrim", + "CREATE_TIME_l": 1705928109, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "154.53.57.190", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 10, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "154.53.57.190", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "cb7b850e876144b9b512f3498989e88a", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 10, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 10, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - Eduardo", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 8211, + "DAYS_l": 21, + "WORLDGUID_s": "6AC81BE24CFB5A93D649BE927E844720", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "TroubleChute's Server", + "CREATE_TIME_l": 1705936830, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "177.200.67.204", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 10, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 3, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "9c80b28107c2496898a05cd6b32fbb7e", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 32, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 32, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - u10980", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 10980, + "DAYS_l": 3, + "WORLDGUID_s": "085C81E59D2643DD950F288577ECA8A2", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Pokermans", + "CREATE_TIME_l": 1705956245, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "54.39.49.112", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 32, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "54.39.49.112", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "cdb5fd448a5d4101a2b2086b6f6f7a14", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 8, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 8, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - TCAGameSvc7330287", + "GAMESERVER_PORT_l": 8715, + "DAYS_l": 10, + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "CREATE_TIME_l": 1705954541, + "SERVERTIME_l": 19, + "DEDICATEDONLY_b": true, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "51.195.190.147", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BUSESSTATS_b": false, + "WORLDGUID_s": "AF995C9543B09F4A6CD5D9931F1FF830", + "NAME_s": "Dnd PALS", + "ADDRESS_s": "51.195.190.147", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 8, + "DESCRIPTION_s": "Get your server at GTXGaming.co.uk - Instant Setup", + "BUILDUNIQUEID_l": 0, + "BISDEDICATED_b": true, + "PLAYERS_l": 3, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "635538dae28f400ea99ae456e2a90ec1", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 16, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 16, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - zap1167419g603776", + "GAMESERVER_PORT_l": 27042, + "DAYS_l": 24, + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "CREATE_TIME_l": 1705929991, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "147.189.173.11", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BUSESSTATS_b": false, + "WORLDGUID_s": "0F5069CBCE7D4EE7B965835A5864F581", + "NAME_s": "Server hosted by ZAP-Hosting.com", + "ADDRESS_s": "147.189.173.11", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 16, + "DESCRIPTION_s": "This Server is Hosted by ZAP-Hosting.com", + "BUILDUNIQUEID_l": 0, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "6d5728d1ea4f471cac93ae6f685c8b4a", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 32, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 32, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - CupcakeFondler", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 8211, + "DAYS_l": 1, + "WORLDGUID_s": "8696777140A84E5DA8F2D8AFDB005CCD", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Default Palworld Server", + "CREATE_TIME_l": 1705885349, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "47.224.206.116", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 32, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "2b580186b11c4be0bf37cde96cc2b4e1", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 32, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 32, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - palworld", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 8211, + "DAYS_l": 28, + "WORLDGUID_s": "8488811FEA0D47DAB5B239A93ED08EAC", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Default Palworld Server", + "CREATE_TIME_l": 1705966072, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "160.251.174.138", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 32, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "78047d86f4aa42a79adb36962e0aea3d", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 8, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 8, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - ni16269361", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 22000, + "DAYS_l": 19, + "WORLDGUID_s": "923A0F494AC656C53A91D8BFC88406EA", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Valhalla", + "CREATE_TIME_l": 1705906421, + "SERVERTIME_l": 29, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "31.214.224.166", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 8, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "85.190.162.191", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 1, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "d582acbf392a48fb96a876b1c36a917f", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 32, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 32, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - dathost", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 8211, + "DAYS_l": 18, + "WORLDGUID_s": "AB40D81BF3E14C44B77252086D78DD89", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Default Palworld Server", + "CREATE_TIME_l": 1705954574, + "SERVERTIME_l": 16, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "79.127.216.38", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 32, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 0, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + }, + { + "deployment": "0a18471f93d448e2a1f60e47e03d3413", + "id": "51fff9566184450abbc0be77bc617cb8", + "bucket": "Pal_1", + "settings": { + "maxPublicPlayers": 10, + "allowInvites": false, + "shouldAdvertise": true, + "allowReadById": true, + "allowJoinViaPresence": true, + "allowJoinInProgress": true, + "allowConferenceRoom": false, + "checkSanctions": false, + "allowMigration": false, + "rejoinAfterKick": "", + "platforms": null + }, + "totalPlayers": 0, + "openPublicPlayers": 10, + "publicPlayers": [], + "started": true, + "lastUpdated": null, + "attributes": { + "OWNINGUSERNAME_s": "DedicatedServer - sid6012946", + "BUSESSTATS_b": false, + "GAMESERVER_PORT_l": 29200, + "DAYS_l": 7, + "WORLDGUID_s": "7EC6C9E948AE545A2D8C11B67BFA54E4", + "NUMPRIVATECONNECTIONS_l": 0, + "TYPE_s": "Community", + "NAME_s": "Bambushöhle", + "CREATE_TIME_l": 1705950513, + "SERVERTIME_l": 23, + "DEDICATEDONLY_b": true, + "ADDRESS_s": "92.204.252.54", + "PRESENCESEARCH_b": true, + "NUMPUBLICCONNECTIONS_l": 10, + "BUILDUNIQUEID_l": 0, + "ISPASSWORD_b": false, + "VERSION_s": "v0.1.2.0", + "GAMESERVER_ADDRESS_s": "92.204.252.54", + "NAMESPACE_s": "production", + "BANTICHEATPROTECTED_b": false, + "BISDEDICATED_b": true, + "PLAYERS_l": 3, + "MAPNAME_s": "MainWorld5" + }, + "owner": "Client_xyza78918C8ZyYGcxMcpvTQjPFdjtykx", + "ownerPlatformId": null + } + ], + "Count": 14478 +} +``` diff --git a/docs/tests/toc.yml b/docs/tests/toc.yml index 2571161..2e7a59a 100644 --- a/docs/tests/toc.yml +++ b/docs/tests/toc.yml @@ -24,6 +24,8 @@ items: items: - uid: OpenGSQ.Protocols.Tests.EOSTests.GetInfoTest name: GetInfoTest + - uid: OpenGSQ.Protocols.Tests.EOSTests.GetMatchmakingAsyncTest + name: GetMatchmakingAsyncTest - uid: OpenGSQ.Protocols.Tests.FiveMTests name: FiveMTests items: