about summary refs log tree commit diff stats
path: root/AnodyneArchipelago/ArchipelagoManager.cs
diff options
context:
space:
mode:
Diffstat (limited to 'AnodyneArchipelago/ArchipelagoManager.cs')
-rw-r--r--AnodyneArchipelago/ArchipelagoManager.cs43
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 @@
1using Archipelago.MultiClient.Net;
2using Archipelago.MultiClient.Net.Enums;
3using System;
4
5namespace 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}