public WebApi( ILogger <IWebApi> logger, IMessageFactory messageFactory, ImpostorHqConfig config, IPasswordFile passwordProvider, ICryptoManager crypto, IWebApiUserFactory webApiUserFactory, IMetricsProvider metricsProvider, ILogManager logManager) { _logger = logger; _messageFactory = messageFactory; _passwords = passwordProvider.Passwords; _crypto = crypto; _userFactory = webApiUserFactory; _metricsProvider = metricsProvider; _logManager = logManager; _users = new ConcurrentDictionary <IWebSocketConnection, WebApiUser>(); _timeouts = new ConcurrentDictionary <IWebSocketConnection, int>(); _server = new WebSocketServer($"ws://{config.Host}:{config.ApiPort}"); _timer1S = new Timer(1000) { AutoReset = true }; _timer1S.Elapsed += _timer1s_Elapsed; Start(); }
public BanManager( IDashboardCommandHandler handler, HttpServer httpServer, IPasswordFile passwordFile, IDatabase <string, PlayerBan> banDatabase, ObjectPool <StringBuilder> sbPool, IEventManager eventManager, ILogManager logManager, FileOperationHandler fileOperationHandler, RecordOperationHandler operationHandler) { _banDatabase = banDatabase; _sbPool = sbPool; _logManager = logManager; logManager.LogInformation($"Ban Manager loaded {_banDatabase.Elements.Count()} bans."); handler.AddCommand(new DashboardCommand(operationHandler.Handle, "/ban", "ban database record operations. Usage: /ban add/remove/exists/info ip/name [--offline] [Player Name / IP Address] [reason]. Note that the player name and reason may be supplied in quotes (\").", 6, 3)); handler.AddCommand(new DashboardCommand(fileOperationHandler.Handle, "/bans", "ban database file operations. Usage: /bans list/purge/download", 1, 1)); eventManager.RegisterListener(this); foreach (var password in passwordFile.Passwords) { httpServer.AddHandler(new DynamicHandler($"/bans.csv?{password}", GenerateHttpResponseBody)); } }
public HttpRootConfigurator( HttpServer server, ImpostorHqConfig config, IPasswordFile passwordFile, IHttpPlayerListProvider playerListProvider) { _server = server; _config = config; _playerList = playerListProvider; _passwords = passwordFile.Passwords; }
public DashboardCommandHandler(ICommandParser <DashboardCommand> parser, IMessageFactory messageFactory, ICommandHelpProvider helpProvider, ILogManager logManager, ObjectPool <StringBuilder> sbPool, HttpServer server, IPasswordFile passwordFile) { _parser = parser; _messageFactory = messageFactory; _helpProvider = helpProvider; _logManager = logManager; _sbPool = sbPool; _server = server; _passwords = passwordFile.Passwords.Select(p => p.Key).ToArray(); _parser.Register(new DashboardCommand(HelpRequested, "/help", "lists commands. Usage: /help to show commands, /help [command].", 1, 0)); _parser.Register(new DashboardCommand(FetchLogRequested, "/fetch-log", "fetches log with the name obtained from /logs. Usage: /fetch-log [name]", 1, 1)); _parser.Register(new DashboardCommand(ListLogsRequested, "/logs", "lists logs", 0, 0)); _parser.Register(new DashboardCommand(LogSizeRequested, "/logsize", "shows the space used by the logs", 0, 0)); }
public CryptoManager(ILogger <ICryptoManager> logger, IBlackTea btc, IPasswordFile passwordProvider) { _logger = logger; _crypto = btc; _passwords = passwordProvider.Passwords; }