about summary refs log tree commit diff stats
path: root/AnodyneArchipelago
diff options
context:
space:
mode:
Diffstat (limited to 'AnodyneArchipelago')
-rw-r--r--AnodyneArchipelago/ArchipelagoManager.cs43
-rw-r--r--AnodyneArchipelago/Plugin.cs24
2 files changed, 67 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}
diff --git a/AnodyneArchipelago/Plugin.cs b/AnodyneArchipelago/Plugin.cs index 411a2a4..7375503 100644 --- a/AnodyneArchipelago/Plugin.cs +++ b/AnodyneArchipelago/Plugin.cs
@@ -1,15 +1,39 @@
1using BepInEx; 1using BepInEx;
2using BepInEx.NET.Common; 2using BepInEx.NET.Common;
3using HarmonyLib;
4using HarmonyLib.Tools;
5using System.Reflection;
3 6
4namespace AnodyneArchipelago 7namespace AnodyneArchipelago
5{ 8{
6 [BepInPlugin("com.fourisland.plugins.anodyne.archipelago", "Anodyne Archipelago", "1.0.0.0")] 9 [BepInPlugin("com.fourisland.plugins.anodyne.archipelago", "Anodyne Archipelago", "1.0.0.0")]
7 public class Plugin : BasePlugin 10 public class Plugin : BasePlugin
8 { 11 {
12 public static Plugin Instance = null;
13
9 public override void Load() 14 public override void Load()
10 { 15 {
16 Instance = this;
17
11 // Plugin startup logic 18 // Plugin startup logic
12 Log.LogInfo($"Plugin {PluginInfo.PLUGIN_GUID} is loaded!"); 19 Log.LogInfo($"Plugin {PluginInfo.PLUGIN_GUID} is loaded!");
20
21 // Make patches
22 HarmonyFileLog.Enabled = true;
23 HarmonyFileLog.FileWriterPath = "HarmonyLog.txt";
24
25 Harmony.CreateAndPatchAll(Assembly.GetExecutingAssembly());
26 }
27 }
28
29 [HarmonyPatch(typeof(AnodyneSharp.States.PlayState), nameof(AnodyneSharp.States.PlayState.Create))]
30 class PlayStateCreatePatch
31 {
32 static void Prefix()
33 {
34 Plugin.Instance.Log.LogInfo("Connecting to Archipelago!");
35
36 ArchipelagoManager.Connect("localhost:38281", "Anodyne", "");
13 } 37 }
14 } 38 }
15} 39}