private void SendEventFromStatus(string statusFilePath) { lock (@lock) { var @event = FromJsonFile <StatusEvent>(statusFilePath); if (@event != null) { if ([email protected](_currentGameStatus)) { _currentGameStatus = @event; GameEvents.InvokeEvent(@event); AllEvents?.Invoke(this, new ProcessedEvent { EventName = @event.Event.ToLower(), EventType = typeof(StatusEvent), Event = @event }); } } } }
internal JournalEvent ExecuteEvent(string eventName, string json) { var rawEvent = new OriginalEvent { EventName = eventName, Source = json }; BeforeEvent?.Invoke(this, rawEvent); if (rawEvent.Ignore) { return(null); } if (_cache.Value.TryGetValue(eventName, out var eventCacheItem)) { JournalEvent @event = null; try { @event = (JournalEvent)eventCacheItem.Execute.Invoke(null, new object[] { json, this }); } catch (Exception exception) { LogJournalException(new JournalRecordException(json, exception)); } if (@event != null) { AllEvents?.Invoke(this, new ProcessedEvent { EventName = eventCacheItem.Name, EventType = eventCacheItem.Type, Event = @event }); } return(@event); } LogJournalWarning(new JournalEventNotFoundException(eventName, json)); return(null); }