diff --git a/ExamplePlugin/ExamplePlugin.cs b/ExamplePlugin/ExamplePlugin.cs
new file mode 100644
index 0000000..5308736
--- /dev/null
+++ b/ExamplePlugin/ExamplePlugin.cs
@@ -0,0 +1,21 @@
+using System;
+using WXPlugin.PluginCore;
+
+namespace ExamplePlugin
+{
+ public class ExamplePlugin : IPluginBase
+ {
+ public String Name { get; set; } = "Example Plugin";
+ public String Description { get; set; } = "This is an example plugin.";
+
+ public void Execute()
+ {
+ throw new NotImplementedException();
+ }
+
+ public void Initialize()
+ {
+ throw new NotImplementedException();
+ }
+ }
+}
\ No newline at end of file
diff --git a/ExamplePlugin/ExamplePlugin.csproj b/ExamplePlugin/ExamplePlugin.csproj
new file mode 100644
index 0000000..6bc6089
--- /dev/null
+++ b/ExamplePlugin/ExamplePlugin.csproj
@@ -0,0 +1,60 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {910F0FC8-B73D-449F-ADD7-C6CA147D9F05}
+ Library
+ Properties
+ ExamplePlugin
+ ExamplePlugin
+ v4.8
+ 512
+
+
+ AnyCPU
+ true
+ full
+ false
+ bin\Debug\
+ DEBUG;TRACE
+ prompt
+ 4
+
+
+ AnyCPU
+ pdbonly
+ true
+ bin\Release\
+ TRACE
+ prompt
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {56bfe4e0-0d30-474a-b57b-cf08515ff66e}
+ WXPlugin
+
+
+
+
+
+
diff --git a/WeeXnes.sln b/WeeXnes.sln
index 9de16df..5088cf8 100644
--- a/WeeXnes.sln
+++ b/WeeXnes.sln
@@ -10,6 +10,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Update", "Update\Update.csp
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WXPlugin", "WXPlugin\WXPlugin.csproj", "{56BFE4E0-0D30-474A-B57B-CF08515FF66E}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExamplePlugin", "ExamplePlugin\ExamplePlugin.csproj", "{910F0FC8-B73D-449F-ADD7-C6CA147D9F05}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -36,5 +38,9 @@ Global
{56BFE4E0-0D30-474A-B57B-CF08515FF66E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{56BFE4E0-0D30-474A-B57B-CF08515FF66E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{56BFE4E0-0D30-474A-B57B-CF08515FF66E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {910F0FC8-B73D-449F-ADD7-C6CA147D9F05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {910F0FC8-B73D-449F-ADD7-C6CA147D9F05}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {910F0FC8-B73D-449F-ADD7-C6CA147D9F05}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {910F0FC8-B73D-449F-ADD7-C6CA147D9F05}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal
diff --git a/WeeXnes/App.xaml.cs b/WeeXnes/App.xaml.cs
index 5e77bad..d9d2d8f 100644
--- a/WeeXnes/App.xaml.cs
+++ b/WeeXnes/App.xaml.cs
@@ -51,6 +51,18 @@ namespace WeeXnes
LoadSettings();
SaveSettingsHandler.SetupSaveEvents();
LoadFiles();
+ LoadPluginManager();
+
+ }
+
+ private void LoadPluginManager()
+ {
+ string pluginsPath = Path.Combine(Environment.CurrentDirectory, "plugins");
+ if (!Directory.Exists(pluginsPath))
+ Directory.CreateDirectory(pluginsPath);
+ PluginManager manager = new PluginManager(pluginsPath);
+ manager.LoadPlugins();
+
}
private void CheckUpdatedFiles()
diff --git a/WeeXnes/Core/PluginManager.cs b/WeeXnes/Core/PluginManager.cs
index 089c9a8..7f1a84c 100644
--- a/WeeXnes/Core/PluginManager.cs
+++ b/WeeXnes/Core/PluginManager.cs
@@ -13,11 +13,15 @@ public class PluginManager
public HashSet CurrentPlugins { get; set; } = new HashSet();
public PluginManager(String pluginPath)
{
+
+ Console.WriteLine("Plugin Manager Initialized");
Directories.Add(pluginPath);
}
public void LoadPlugins()
{
+
+ Console.WriteLine("Plugin Manager Loading Plugins");
CurrentPlugins = new HashSet();
foreach (var dir in Directories)
{
@@ -36,6 +40,7 @@ public class PluginManager
null,
null)
as IPluginBase;
+ Console.WriteLine("Loaded: " + newPlugin.Name);
CurrentPlugins.Add(newPlugin);
}
}
diff --git a/WeeXnes/Views/PluginManager/PluginManagerView.xaml b/WeeXnes/Views/PluginManager/PluginManagerView.xaml
new file mode 100644
index 0000000..5188ef4
--- /dev/null
+++ b/WeeXnes/Views/PluginManager/PluginManagerView.xaml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WeeXnes/Views/PluginManager/PluginManagerView.xaml.cs b/WeeXnes/Views/PluginManager/PluginManagerView.xaml.cs
new file mode 100644
index 0000000..6a6e738
--- /dev/null
+++ b/WeeXnes/Views/PluginManager/PluginManagerView.xaml.cs
@@ -0,0 +1,13 @@
+using System.Windows.Controls;
+
+
+namespace WeeXnes.Views.PluginManager;
+
+public partial class PluginManagerView : Page
+{
+ public PluginManagerView()
+ {
+ InitializeComponent();
+
+ }
+}
\ No newline at end of file
diff --git a/WeeXnes/WeeXnes.csproj b/WeeXnes/WeeXnes.csproj
index 1a79ea5..e2f0ef0 100644
--- a/WeeXnes/WeeXnes.csproj
+++ b/WeeXnes/WeeXnes.csproj
@@ -111,6 +111,9 @@
SaveToKeyManagerView.xaml
+
+ PluginManagerView.xaml
+
InboxView.xaml
@@ -168,6 +171,7 @@
+