diff options
Diffstat (limited to 'Jenny/Program.cs')
-rw-r--r-- | Jenny/Program.cs | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/Jenny/Program.cs b/Jenny/Program.cs new file mode 100644 index 0000000..2ee2c9b --- /dev/null +++ b/Jenny/Program.cs @@ -0,0 +1,33 @@ +using Jenny; +using Jenny.Handlers; +using LibMatrix.Services; +using LibMatrix.Utilities.Bot; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; + +var builder = Host.CreateDefaultBuilder(args); + +builder.ConfigureHostOptions(host => { + host.ServicesStartConcurrently = true; + host.ServicesStopConcurrently = true; + host.ShutdownTimeout = TimeSpan.FromSeconds(5); +}); + +if (Environment.GetEnvironmentVariable("JENNY_APPSETTINGS_PATH") is string path) + builder.ConfigureAppConfiguration(x => x.AddJsonFile(path)); + +var host = builder.ConfigureServices((_, services) => { + services.AddSingleton<JennyConfiguration>(); + + services.AddRoryLibMatrixServices(new() { + AppName = "Jenny" + }); + services.AddMatrixBot().AddCommandHandler().DiscoverAllCommands() + .WithInviteHandler(InviteHandler.HandleAsync) + .WithCommandResultHandler(CommandResultHandler.HandleAsync); + + services.AddHostedService<JennyBot>(); +}).UseConsoleLifetime().Build(); + +await host.RunAsync(); \ No newline at end of file |