private void _onMessage(ZGameEvent eventEnum, string rawEvent, ZGameState[] stateEnums, string rawState) { if (StateChanged == null) { return; } // raise event var invocationList = StateChanged.GetInvocationList(); var eventArgs = new ZGamePipeArgs(eventEnum, rawEvent, stateEnums, rawState); foreach (var handler in invocationList) { var eventHandler = (EventHandler <ZGamePipeArgs>)handler; eventHandler.BeginInvoke(this, eventArgs, _EndAsyncEvent, null); } }
private void _gamePipeHandler(object sender, ZGamePipeArgs e) { // save part of pipe log _pipeLogger.AppendLine(e.RawFullMessage); // handle pipe event switch (e.Event) { case ZGameEvent.Unknown: // ignore but log, it's important to understand, what happen here _logger.Warn($"Received unknown event with next value {e.RawFullMessage}"); break; case ZGameEvent.StateChanged: _handleStates(e.States); break; case ZGameEvent.Alert: break; case ZGameEvent.GameWaiting: // we're already loaded _OnGameLoadingCompleted(); // inject selected dll`s if (!_settingsService.GlobalBlock) { _zloApi.InjectDll(_gameSettings.Game, _gameSettings.Dlls); } break; default: throw new ArgumentOutOfRangeException(); } }