private bool SetItemBuilds(int championId, BlitzChampions.Data recommendedData, string path) { try { string configPath = Path.Combine(path, "Config/Champions/" + champions.GetAlias(championId) + "/Recommended"); if (!Directory.Exists(configPath)) { Directory.CreateDirectory(configPath); } var itemBuilds = new IngameItemRecommended(); itemBuilds.title = "LightBlitz"; itemBuilds.AddBlock("Starting Items & Trinkets", recommendedData.stats.starting_items.build); itemBuilds.AddBlock("Consumables", new int[] { 2003, 2031, 2033, 2138, 2139, 2140 }); itemBuilds.AddBlock("Core Build Path", recommendedData.stats.core_builds.build); itemBuilds.AddBlock("Core Final Build", recommendedData.stats.big_item_builds.build); var json = JsonConvert.SerializeObject(itemBuilds); File.WriteAllText(Path.Combine(configPath, itemBuildsFileName), json); } catch (Exception e) { Debug.WriteLine(e.ToString()); return(false); } return(true); }
private async Task <bool> SetRunes(int championId, BlitzChampions.Data recommendedData) { // Get pages var pages = await LeagueRequest <LeaguePerksPage[]>(HttpMethod.Get, "lol-perks/v1/pages"); if (pages == null) { return(false); } // Set to any default pages var anyDefaultPage = pages.FirstOrDefault(x => !x.isEditable); if (anyDefaultPage == null) { return(false); } await LeagueRequestRaw(HttpMethod.Put, "lol-perks/v1/currentpage", new StringContent(anyDefaultPage.id.ToString(), Encoding.UTF8)); // Delete exist LightBlitz pages foreach (var page in pages.Where(x => x.isEditable && x.name.StartsWith(runePagePrefix))) { await LeagueRequestRaw(HttpMethod.Delete, "lol-perks/v1/pages/" + page.id.ToString()); } // Create page if (recommendedData.stats.runes.build.Length < 8 || recommendedData.stats.rune_stat_shards.build.Length < 3) { return(false); } var data = new LeaguePerksPagePost(); var championName = champions.GetName(championId); data.name = runePagePrefix + championName + (recommendedData.role.Length > 0 ? string.Format(" ({0})", recommendedData.role) : string.Empty); data.primaryStyleId = recommendedData.stats.runes.build[0]; data.selectedPerkIds = new int[] { recommendedData.stats.runes.build[1], recommendedData.stats.runes.build[2], recommendedData.stats.runes.build[3], recommendedData.stats.runes.build[4], recommendedData.stats.runes.build[6], recommendedData.stats.runes.build[7], recommendedData.stats.rune_stat_shards.build[0], recommendedData.stats.rune_stat_shards.build[1], recommendedData.stats.rune_stat_shards.build[2], }; data.subStyleId = recommendedData.stats.runes.build[5]; var json = JsonConvert.SerializeObject(data); var newPage = await LeagueRequest <LeaguePerksPage>(HttpMethod.Post, "lol-perks/v1/pages", new StringContent(json, Encoding.UTF8, "application/json")); if (newPage == null) { return(false); } // Set page var setResult = await LeagueRequestRaw(HttpMethod.Put, "lol-perks/v1/currentpage", new StringContent(newPage.id.ToString(), Encoding.UTF8)); if (setResult == null) { return(false); } return(true); }
private async Task <bool> SetSpells(LeagueSummonerCurrentSummoner summonerData, BlitzChampions.Data recommendedData) { var result = await LeagueRequest <LeagueChampSelectSession>(HttpMethod.Get, "lol-champ-select/v1/session"); if (result == null) { return(false); } var summoner = result.myTeam.FirstOrDefault(x => x.summonerId == summonerData.summonerId); if (summoner == null) { return(false); } var data = new LeagueChampSelectSessionMySelectionPatch(); data.selectedSkinId = summoner.selectedSkinId; data.wardSkinId = summoner.wardSkinId; if (Settings.Current.BlinkToRight && recommendedData.stats.spells.build[0] == 4) { data.spell1Id = recommendedData.stats.spells.build[1]; data.spell2Id = recommendedData.stats.spells.build[0]; } else { data.spell1Id = recommendedData.stats.spells.build[0]; data.spell2Id = recommendedData.stats.spells.build[1]; } var json = JsonConvert.SerializeObject(data); var selectResult = await LeagueRequestRaw(new HttpMethod("PATCH"), "lol-champ-select/v1/session/my-selection", new StringContent(json, Encoding.UTF8, "application/json")); if (selectResult == null) { return(false); } return(true); }