private async void ChampSelectSessionChanged(object sender, LeagueEvent e) { var session = e?.Data?.ToObject <Session>(); if (session == null) { return; } var actions = session.actions.SelectMany(inner => inner); var myActions = actions.Where(action => action.actorCellId == session.localPlayerCellId); var myActiveAction = myActions.FirstOrDefault(action => action.isInProgress && session.timer.phase == "BAN_PICK"); if (myActiveAction == null) { return; } if (myActiveAction.type == "ban") { // Get first available champ in banlist! var bans = session.bans.myTeamBans.Concat(session.bans.theirTeamBans); //var hovers = session.actions // TODO: Check for hovered champions! foreach (var championId in championBanList) { if (bans.Contains(championId)) { continue; } await ChampionSelectService.BanChampionAsync(myActiveAction, championId); } } }
private void ChampSelectSFXChanged(object sender, LeagueEvent e) { if (CurrentSettings.PickBan) { Logging.Verbose($"SFX Change: {e.Data}"); } }
private void ChampSelectChanged(object sender, LeagueEvent e) { if (CurrentSettings.PickBan) { BroadcastHub.clientController.ApplyNewState(e); } }
private void ClientStateChanged(object sender, LeagueEvent e) { string eventType = e.Data.ToString(); Logging.Verbose($"New League State: {eventType}"); switch (eventType) { case "ChampSelect": ChampSelectStart?.Invoke(this, EventArgs.Empty); break; case "InProgress": GameStart?.Invoke(this, EventArgs.Empty); break; default: break; } if (!eventType.Equals("InProgress") && BroadcastHubController.CurrentLeagueState.Equals("InProgress")) { GameStop?.Invoke(this, EventArgs.Empty); } if (!eventType.Equals("ChampSelect") && BroadcastHubController.CurrentLeagueState.Equals("ChampSelect")) { ChampSelectStop?.Invoke(this, EventArgs.Empty); } BroadcastHubController.CurrentLeagueState = eventType; }
private void OnChampSelectSessionTriggered(object sender, LeagueEvent e) { var session = e.Data.ToObject <Session>(); if (session == null || (SentActions.Count > 0 && string.IsNullOrEmpty(session.timer.phase))) { SentActions = new List <Models.ChampSelect.Action>(); } }
private async void ChampSelectSessionChanged(object sender, LeagueEvent e) { var session = e?.Data?.ToObject <Session>(); if (session == null) { Console.WriteLine("Data is null!"); return; } var currentAction = session?.actions?.LastOrDefault()?.LastOrDefault(); if (currentAction == null || currentAction.actorCellId != session.localPlayerCellId) { return; } // TODO: Fails bc bans are global (multiple active actorCells) => Use RiftExplorer to check state when everyone is able to ban if (currentAction.actorCellId == session.localPlayerCellId && currentAction.type == "ban") { // Get first available champ in banlist! var bans = session.bans.myTeamBans.Concat(session.bans.theirTeamBans); foreach (var championId in championBanList) { if (bans.Contains(championId)) { continue; } await ChampionSelectService.BanChampionAsync(currentAction, championId); } Console.WriteLine($"Action {currentAction.id} ({currentAction.type}): {(currentAction.completed ? "completed" : "in Progress")}"); } }
private async void OnReadyCheck(object sender, LeagueEvent e) { ReadyCheckResponse?res; try { res = e?.Data?.ToObject <ReadyCheckResponse>(); } catch { return; } if (autoAccept && res?.playerResponse == PlayerResponse.None) { Console.WriteLine("Game found!"); var api = await LeagueClientApi.ConnectAsync(); await api.RequestHandler.GetJsonResponseAsync(HttpMethod.Post, "/lol-matchmaking/v1/ready-check/accept"); Console.WriteLine("Accepted Readycheck!"); } }
private void OnGameFlowChanged(object sender, LeagueEvent e) { var result = e.Data.ToString(); if (result == "None") { State = State.MainMenu; } else if (result == "ChampSelect") { State = State.ChampSelect; } else if (result == "Lobby") { State = State.Lobby; } else if (result == "InProgress") { State = State.InProgress; } // Print new state and set work to complete. this.Dispatcher.Invoke(() => { Status.Content = $"Status update: Entered {State}."; if (State == State.ChampSelect && !Timer.IsEnabled) { Timer.Start(); } else if (State != State.ChampSelect && Timer.IsEnabled) { Timer.Stop(); } }); }
private void OnChampSelectSessionTriggered(object sender, LeagueEvent e) { }
private void ProcessRequest(LeagueEvent leagueEvent) { if (leagueEvent.Completed != null) return; _gameActions[leagueEvent.Action].Invoke(leagueEvent.Options); leagueEvent.Completed = DateTime.UtcNow; _services.AdminSvc.Put(leagueEvent.ConvertTo<UpdateLeagueEvent>()); }
private static void LolClient_OnChampSelect(object sender, LeagueEvent e) { Trace.WriteLine("EHLLO WORLD"); }
public void SendEventAsync(IWebSocketContext context, LeagueEvent leagueEvent) { SendAsync(context, JsonConvert.SerializeObject(leagueEvent)); }
public void SendEventToAllAsync(LeagueEvent leagueEvent) { BroadcastAsync(JsonConvert.SerializeObject(leagueEvent)); }