public Matchmode(ILoggerFactory loggerFactory, BaseConfig baseConfig, MatchmodeConfig matchmodeConfig) { _matchmodeConfig = matchmodeConfig; _loggerFactory = loggerFactory; _logger = loggerFactory.CreateLogger <Matchmode>(); _stopToken = new StopToken(); _modeBase = new ModeBase(loggerFactory, baseConfig, _stopToken); _broadcastServer = new WebsocketBroadcastServer( loggerFactory.CreateLogger <WebsocketBroadcastServer>(), "localhost", 5001); _overlayConnection = new OverlayConnection(loggerFactory.CreateLogger <OverlayConnection>(), _broadcastServer); }
public AnarchyInputFeed( OverlayConnection overlayConnection, IInputHoldTiming inputHoldTiming, IInputMapper inputMapper, InputBufferQueue <QueuedInput> inputBufferQueue, float fps) { _overlayConnection = overlayConnection; _inputHoldTiming = inputHoldTiming; _inputMapper = inputMapper; _inputBufferQueue = inputBufferQueue; _fps = fps; }
public OverlayConnectionTest() { _connection = new OverlayConnection(NullLogger <OverlayConnection> .Instance, _broadcastServerMock.Object); }
public ModeBase( ILoggerFactory loggerFactory, Setups.Databases repos, BaseConfig baseConfig, StopToken stopToken, OverlayConnection overlayConnection, ProcessMessage?processMessage = null) { IClock clock = SystemClock.Instance; _logger = loggerFactory.CreateLogger <ModeBase>(); PokedexData pokedexData = PokedexData.Load(); ArgsParser argsParser = Setups.SetUpArgsParser(repos.UserRepo, pokedexData); _processMessage = processMessage ?? (_ => Task.FromResult(false)); var chats = new Dictionary <string, IChat>(); var chatFactory = new ChatFactory(loggerFactory, clock, repos.UserRepo, repos.TokensBank, repos.SubscriptionLogRepo, repos.LinkedAccountRepo, overlayConnection); foreach (ConnectionConfig connectorConfig in baseConfig.Chat.Connections) { IChat chat = chatFactory.Create(connectorConfig); if (chats.ContainsKey(chat.Name)) { throw new ArgumentException($"chat name '{chat.Name}' was used multiple times. It must be unique."); } chats[chat.Name] = chat; } _chats = chats.ToImmutableDictionary(); foreach (IChat chat in _chats.Values) { chat.IncomingMessage += MessageReceived; } _commandResponders = _chats.Values.ToImmutableDictionary( c => c.Name, c => (ICommandResponder) new CommandResponder(c)); _commandProcessors = _chats.Values.ToImmutableDictionary( c => c.Name, c => Setups.SetUpCommandProcessor(loggerFactory, argsParser, repos, stopToken, c, c, pokedexData.KnownSpecies)); _messagequeueRepo = repos.MessagequeueRepo; _messagelogRepo = repos.MessagelogRepo; _forwardUnprocessedMessages = baseConfig.Chat.ForwardUnprocessedMessages; _clock = SystemClock.Instance; ILogger <Moderator> moderatorLogger = loggerFactory.CreateLogger <Moderator>(); IImmutableList <IModerationRule> availableRules = ImmutableList.Create <IModerationRule>( new BannedUrlsRule(), new SpambotRule(), new EmoteRule(), new CopypastaRule(clock), new UnicodeCharacterCategoryRule() ); foreach (string unknown in baseConfig.DisabledModbotRules.Except(availableRules.Select(rule => rule.Id))) { moderatorLogger.LogWarning("unknown modbot rule '{UnknownRule}' marked as disabled", unknown); } IImmutableList <IModerationRule> rules = availableRules .Where(rule => !baseConfig.DisabledModbotRules.Contains(rule.Id)) .ToImmutableList(); _moderators = _chats.Values.ToImmutableDictionary( c => c.Name, c => (IModerator) new Moderator(moderatorLogger, c, rules, repos.ModLogRepo, clock)); }