Files
Server/OwnChar.Server/Program.cs

37 lines
1.3 KiB
C#

using OwnChar.Plugins;
using OwnChar.ServerNew.Api.Plugins;
using Pilz.Configuration;
namespace OwnChar.ServerNew;
internal class Program
{
public static string? AppTempFolder { get; private set; }
public static ISettingsManager? SettingsManager { get; private set; }
public static void Main(string[] args)
{
// Load settings
AppTempFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "OwnChar", "Server");
Directory.CreateDirectory(AppTempFolder);
SettingsManager = new SettingsManager(Path.Combine(AppTempFolder, "Settings.json"), true);
// Create server context
var server = new ServerContext(SettingsManager.Instance);
// Load log
// ...
// Load plugins
server.Log.Debug("Loading plugins");
var pluginPath = Path.Combine(AppTempFolder, "Plugins");
Directory.CreateDirectory(pluginPath);
var pluginPaths = Directory.GetDirectories(pluginPath, "*", SearchOption.TopDirectoryOnly).Select(n => Path.Combine(n, n + ".dll")).ToArray();
var plugins = OwnCharPlugins.Instance.LoadPlugins(pluginPaths, new OwnCharServerPluginInitParams(server));
server.Log.InfoFormat("{0} plugins loaded", plugins.Count());
// Start server app
server.Start(args);
}
}