37 lines
1.3 KiB
C#
37 lines
1.3 KiB
C#
using OwnChar.Plugins;
|
|
using OwnChar.ServerNew.Api.Plugins;
|
|
using Pilz.Configuration;
|
|
|
|
namespace OwnChar.Server;
|
|
|
|
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);
|
|
}
|
|
}
|