using cmonitor.config; using cmonitor.plugins.relay.messenger; using cmonitor.plugins.relay.transport; using cmonitor.startup; using Microsoft.Extensions.DependencyInjection; using System.Reflection; namespace cmonitor.plugins.relay { public sealed class RelayStartup : IStartup { public StartupLevel Level => StartupLevel.Normal; public void AddClient(ServiceCollection serviceCollection, Config config, Assembly[] assemblies) { serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); serviceCollection.AddSingleton(); if (config.Data.Client.Relay.Servers.Length == 0) { config.Data.Client.Relay.Servers = new RelayCompactInfo[] { new RelayCompactInfo{ Name="self", Disabled = false, Host = config.Data.Client.Server } }; } } public void AddServer(ServiceCollection serviceCollection, Config config, Assembly[] assemblies) { serviceCollection.AddSingleton(); } public void UseClient(ServiceProvider serviceProvider, Config config, Assembly[] assemblies) { RelayTransfer relayTransfer = serviceProvider.GetService(); relayTransfer.Load(assemblies); } public void UseServer(ServiceProvider serviceProvider, Config config, Assembly[] assemblies) { } } }