// See https://aka.ms/new-console-template for more information using HightechICT.Amazeing.Client.Rest; using System.Net; using System.Xml.Linq; string apiAuthorization = "HTI Thanks You [OZL]"; string baseUrl = @"https://maze.hightechict.nl/"; string username = "Hi Hightech!"; Console.WriteLine("Starting bot..."); HttpClient httpClient = new (); httpClient.DefaultRequestHeaders.Add("Authorization", apiAuthorization); AmazeingClient mazeClient = new AmazeingClient(baseUrl, httpClient); ICollection mazeInfos = await mazeClient.AllMazes(); foreach(MazeInfo info in mazeInfos) { Console.WriteLine($"Name: {info.Name}, Tiles: {info.TotalTiles}"); } bool registered = await RegisterPlayer(username, true); if (!registered) { Console.WriteLine($"Player '{username}' failed to register"); return; } Console.WriteLine($"Player '{username}' registered"); PossibleActionsAndCurrentScore result = await mazeClient.EnterMaze("Test"); ConsoleKeyInfo input; do { input = Console.ReadKey(); input. } while (result != null); async Task RegisterPlayer(string username, bool reset = false) { PlayerInfo? info = null; try { info = await mazeClient.GetPlayerInfo(); } catch (ApiException apiEx) when (apiEx.StatusCode == (int)HttpStatusCode.NotFound) { // no player registered. // do some logging } if (info != null && reset == false) { // player already registered and no re-register needed. return true; } if (info != null && reset == true) { // player already registered and re-register needed. try { // forget the player. await mazeClient.ForgetPlayer(); return true; } catch (ApiException apiEx) { // do some logging return false; } } try { // register the player. await mazeClient.RegisterPlayer(username); return true; } catch (ApiException apiEx) { // do some logging return false; } }