-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMain.cs
42 lines (36 loc) · 1.04 KB
/
Main.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
using Hosihikari.PluginManagement;
using Hosihikari.ScriptManagement;
[assembly: EntryPoint<Main>]
namespace Hosihikari.ScriptManagement;
internal class Main : IEntryPoint
{
internal static readonly List<Plugin> s_plugins;
static Main()
{
s_plugins = [];
}
public void Initialize(AssemblyPlugin _plugin)
{
DirectoryInfo directoryInfo = new("plugins");
foreach (FileInfo file in directoryInfo.EnumerateFiles("*.py"))
{
PythonPlugin plugin = new(file);
Manager.Load(plugin);
s_plugins.Add(plugin);
}
foreach (FileInfo file in directoryInfo.EnumerateFiles("*.lua"))
{
LuaPlugin plugin = new(file);
Manager.Load(plugin);
s_plugins.Add(plugin);
}
foreach (Plugin plugin in s_plugins)
{
if (string.IsNullOrWhiteSpace(plugin.Name))
{
throw new NullReferenceException();
}
Manager.Initialize(plugin.Name);
}
}
}