From 07ba77d448cc54d4f2b149b31652fff156efdb40 Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 22 May 2024 10:35:42 -0400 Subject: It can connect! --- AnodyneArchipelago/ArchipelagoManager.cs | 43 ++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 AnodyneArchipelago/ArchipelagoManager.cs (limited to 'AnodyneArchipelago/ArchipelagoManager.cs') diff --git a/AnodyneArchipelago/ArchipelagoManager.cs b/AnodyneArchipelago/ArchipelagoManager.cs new file mode 100644 index 0000000..8c107a3 --- /dev/null +++ b/AnodyneArchipelago/ArchipelagoManager.cs @@ -0,0 +1,43 @@ +using Archipelago.MultiClient.Net; +using Archipelago.MultiClient.Net.Enums; +using System; + +namespace AnodyneArchipelago +{ + internal class ArchipelagoManager + { + private static ArchipelagoSession _session; + + public static void Connect(string url, string slotName, string password) + { + LoginResult result; + try + { + _session = ArchipelagoSessionFactory.CreateSession(url); + result = _session.TryConnectAndLogin("Anodyne", slotName, ItemsHandlingFlags.AllItems, null, null, null, password == "" ? null : password); + } + catch (Exception e) + { + result = new LoginFailure(e.GetBaseException().Message); + } + + if (!result.Successful) + { + LoginFailure failure = result as LoginFailure; + string errorMessage = $"Failed to connect to {url} as {slotName}:"; + foreach (string error in failure.Errors) + { + errorMessage += $"\n {error}"; + } + foreach (ConnectionRefusedError error in failure.ErrorCodes) + { + errorMessage += $"\n {error}"; + } + + Plugin.Instance.Log.LogError(errorMessage); + + return; + } + } + } +} -- cgit 1.4.1