diff options
author | Star Rauchenberger <fefferburbia@gmail.com> | 2024-05-22 10:35:42 -0400 |
---|---|---|
committer | Star Rauchenberger <fefferburbia@gmail.com> | 2024-05-22 10:35:42 -0400 |
commit | 07ba77d448cc54d4f2b149b31652fff156efdb40 (patch) | |
tree | e80018494aaa8da820dccb33e8c3842bc7efe9c7 /AnodyneArchipelago/ArchipelagoManager.cs | |
parent | 3bcf9016e23133d9b051dbd65ce682fddf6b5bc5 (diff) | |
download | anodyne-archipelago-07ba77d448cc54d4f2b149b31652fff156efdb40.tar.gz anodyne-archipelago-07ba77d448cc54d4f2b149b31652fff156efdb40.tar.bz2 anodyne-archipelago-07ba77d448cc54d4f2b149b31652fff156efdb40.zip |
It can connect!
Diffstat (limited to 'AnodyneArchipelago/ArchipelagoManager.cs')
-rw-r--r-- | AnodyneArchipelago/ArchipelagoManager.cs | 43 |
1 files changed, 43 insertions, 0 deletions
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 @@ | |||
1 | using Archipelago.MultiClient.Net; | ||
2 | using Archipelago.MultiClient.Net.Enums; | ||
3 | using System; | ||
4 | |||
5 | namespace AnodyneArchipelago | ||
6 | { | ||
7 | internal class ArchipelagoManager | ||
8 | { | ||
9 | private static ArchipelagoSession _session; | ||
10 | |||
11 | public static void Connect(string url, string slotName, string password) | ||
12 | { | ||
13 | LoginResult result; | ||
14 | try | ||
15 | { | ||
16 | _session = ArchipelagoSessionFactory.CreateSession(url); | ||
17 | result = _session.TryConnectAndLogin("Anodyne", slotName, ItemsHandlingFlags.AllItems, null, null, null, password == "" ? null : password); | ||
18 | } | ||
19 | catch (Exception e) | ||
20 | { | ||
21 | result = new LoginFailure(e.GetBaseException().Message); | ||
22 | } | ||
23 | |||
24 | if (!result.Successful) | ||
25 | { | ||
26 | LoginFailure failure = result as LoginFailure; | ||
27 | string errorMessage = $"Failed to connect to {url} as {slotName}:"; | ||
28 | foreach (string error in failure.Errors) | ||
29 | { | ||
30 | errorMessage += $"\n {error}"; | ||
31 | } | ||
32 | foreach (ConnectionRefusedError error in failure.ErrorCodes) | ||
33 | { | ||
34 | errorMessage += $"\n {error}"; | ||
35 | } | ||
36 | |||
37 | Plugin.Instance.Log.LogError(errorMessage); | ||
38 | |||
39 | return; | ||
40 | } | ||
41 | } | ||
42 | } | ||
43 | } | ||