public ImpostorHqPlugin(ILogger <ImpostorHqPlugin> logger, IEventManager eventManager, IGameManager gameManager, IMessageWriterProvider messageWriterProvider, IClientManager clientManager) { ImpostorHqR.Extension.Api.Registry.Impostor.ClientManager = clientManager; ImpostorHqR.Extension.Api.Registry.Impostor.EventManager = eventManager; ImpostorHqR.Extension.Api.Registry.Impostor.GameManager = gameManager; ImpostorHqR.Extension.Api.Registry.Impostor.Logger = logger; ImpostorHqR.Extension.Api.Registry.Impostor.MessageWriterProvider = messageWriterProvider; ReusableStringBuilderPool.Initialize(); LoggingManager.Initialize(); ConfigurationLoader.LoadConfigs(typeof(ImpostorHqPlugin).Assembly); ServiceManager.Init(); ImpostorEventListenerCreator.Initialize(); CommandProcessor.Start(); CommandListener.Start(); HelpCommandRegister.Register(); WebBinder.Bind(); WebApiListener.Start(); HttpServer.Start(); ExtensionLoader.Initialize(); ExtensionLoader.Start(); }