diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..9124e51
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "LLib"]
+ path = LLib
+ url = git@git.carvel.li:liza/LLib.git
diff --git a/Deliveroo.sln b/Deliveroo.sln
index 0bc9a1a..75d8fb9 100644
--- a/Deliveroo.sln
+++ b/Deliveroo.sln
@@ -2,6 +2,8 @@
Microsoft Visual Studio Solution File, Format Version 12.00
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Deliveroo", "Deliveroo\Deliveroo.csproj", "{978F4598-921A-4F9D-A975-1463D3BA96C3}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LLib", "LLib\LLib.csproj", "{B4EFA106-69ED-4E45-8646-425C0708CBAC}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -12,5 +14,9 @@ Global
{978F4598-921A-4F9D-A975-1463D3BA96C3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{978F4598-921A-4F9D-A975-1463D3BA96C3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{978F4598-921A-4F9D-A975-1463D3BA96C3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B4EFA106-69ED-4E45-8646-425C0708CBAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B4EFA106-69ED-4E45-8646-425C0708CBAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B4EFA106-69ED-4E45-8646-425C0708CBAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B4EFA106-69ED-4E45-8646-425C0708CBAC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
diff --git a/Deliveroo/Deliveroo.csproj b/Deliveroo/Deliveroo.csproj
index 33e0ec2..6a063a6 100644
--- a/Deliveroo/Deliveroo.csproj
+++ b/Deliveroo/Deliveroo.csproj
@@ -11,6 +11,7 @@
true
true
portable
+ $(SolutionDir)=X:\
@@ -21,6 +22,10 @@
$(DALAMUD_HOME)/
+
+
+
+
@@ -52,7 +57,6 @@
-
diff --git a/Deliveroo/External/DalamudReflector.cs b/Deliveroo/External/DalamudReflector.cs
deleted file mode 100644
index 83747ac..0000000
--- a/Deliveroo/External/DalamudReflector.cs
+++ /dev/null
@@ -1,113 +0,0 @@
-using Dalamud.Plugin;
-using System;
-using System.Collections.Generic;
-using System.Reflection;
-using Dalamud.Plugin.Services;
-
-namespace Deliveroo.External;
-
-///
-/// Originally part of ECommons by NightmareXIV.
-///
-/// https://github.com/NightmareXIV/ECommons/blob/master/ECommons/Reflection/DalamudReflector.cs
-///
-internal sealed class DalamudReflector : IDisposable
-{
- private readonly DalamudPluginInterface _pluginInterface;
- private readonly IFramework _framework;
- private readonly IPluginLog _pluginLog;
- private readonly Dictionary _pluginCache = new();
- private bool _pluginsChanged = false;
-
- public DalamudReflector(DalamudPluginInterface pluginInterface, IFramework framework, IPluginLog pluginLog)
- {
- _pluginInterface = pluginInterface;
- _framework = framework;
- _pluginLog = pluginLog;
- var pm = GetPluginManager();
- pm.GetType().GetEvent("OnInstalledPluginsChanged")!.AddEventHandler(pm, OnInstalledPluginsChanged);
-
- _framework.Update += FrameworkUpdate;
- }
-
- public void Dispose()
- {
- _framework.Update -= FrameworkUpdate;
-
- var pm = GetPluginManager();
- pm.GetType().GetEvent("OnInstalledPluginsChanged")!.RemoveEventHandler(pm, OnInstalledPluginsChanged);
- }
-
- private void FrameworkUpdate(IFramework framework)
- {
- if (_pluginsChanged)
- {
- _pluginsChanged = false;
- _pluginCache.Clear();
- }
- }
-
- private object GetPluginManager()
- {
- return _pluginInterface.GetType().Assembly.GetType("Dalamud.Service`1", true)!
- .MakeGenericType(
- _pluginInterface.GetType().Assembly.GetType("Dalamud.Plugin.Internal.PluginManager", true)!)
- .GetMethod("Get")!.Invoke(null, BindingFlags.Default, null, Array.Empty