/// <summary> /// Get information about a single clan by clan tag. /// </summary> public async Task GetClanInformation() { var coc = new ClashOfClansClient(token); var clan = await coc.Clans.GetClanAsync(clanTag); Console.WriteLine($"Clan '{clan.Name}' is a level {clan.ClanLevel} clan and has {clan.Members} members"); }
/// <summary> /// Get information about the current gold pass season. /// </summary> public async Task GetCurrentGoldPassSeason() { var coc = new ClashOfClansClient(token); var currentGoldPassSeason = await coc.GoldPass.GetCurrentGoldPassSeasonAsync(); Console.WriteLine($"Current GoldPass season started '{currentGoldPassSeason.StartTime.ToLocalTime()}'" + $" and ends '{currentGoldPassSeason.EndTime.ToLocalTime()}'"); }
/// <summary> /// Verify player API token that can be found from the game settings /// </summary> public async Task VerifyPlayerApiToken() { var playerApiToken = "123456789"; var coc = new ClashOfClansClient(token); var result = await coc.Players.VerifyTokenAsync(playerTag, playerApiToken); Console.WriteLine($"Player '{result.Tag}' API token '{result.Token}' status '{result.Status}'"); }
/// <summary> /// Get war league information /// </summary> public async Task GetWarLeagueInformation() { var warLeagueId = 48000000; // Unranked var coc = new ClashOfClansClient(token); var warLeague = await coc.Leagues.GetWarLeagueAsync(warLeagueId); Console.WriteLine($"Id: {warLeague.Id} = {warLeague.Name}"); }
/// <summary> /// Get information about specific location /// </summary> public async Task GetLocationInformation() { var coc = new ClashOfClansClient(token); var locationId = 32000086; // Finland var location = await coc.Locations.GetLocationAsync(locationId); Console.WriteLine($"Id: {location.Id}, Name: {location.Name}, IsCountry: {location.IsCountry}"); }
/// <summary> /// Get league information /// </summary> public async Task GetLeagueInformation() { var leagueId = 29000022; // Legend League identifier var coc = new ClashOfClansClient(token); var league = await coc.Leagues.GetLeagueAsync(leagueId); Console.WriteLine($"Id: {league.Id} = {league.Name}"); }
/// <summary> /// List player labels /// </summary> public async Task ListPlayerLabels() { var coc = new ClashOfClansClient(token); var labels = (LabelList)await coc.Labels.GetPlayerLabelsAsync(); foreach (var label in labels) { Console.WriteLine($"Id: {label.Id}, Name: {label.Name}"); } }
/// <summary> /// List clan members /// </summary> public async Task ListClanMembers() { var coc = new ClashOfClansClient(token); var clanMembers = (ClanMemberList)await coc.Clans.GetClanMembersAsync(clanTag); foreach (var member in clanMembers) { Console.WriteLine($"{member.ClanRank}. {member.Name}, {member.Trophies} \uD83C\uDFC6, {member.League.Name}"); } }
public LeaguesTest() { var token = string.Empty; if (File.Exists("coc_token.txt")) { token = File.ReadAllText("coc_token.txt"); } _cocClient = new ClashOfClansClient(token, TimeSpan.FromSeconds(2)); }
/// <summary> /// List locations /// </summary> public async Task ListLocations() { var coc = new ClashOfClansClient(token); var locations = (LocationList)await coc.Locations.GetLocationsAsync(); Console.WriteLine($"Total amount of locations: {locations.Count}"); foreach (var location in locations) { Console.WriteLine($"Id: {location.Id}, Name: {location.Name}, IsCountry: {location.IsCountry}, CountryCode: {location.CountryCode}"); } }
/// <summary> /// List war leagues /// </summary> public async Task ListWarLeagues() { var coc = new ClashOfClansClient(token); var warLeagues = (WarLeagueList)await coc.Leagues.GetWarLeaguesAsync(); Console.WriteLine($"Total amount of war leagues: {warLeagues.Count}"); foreach (var warLeague in warLeagues) { Console.WriteLine($"Id: {warLeague.Id}, Name: {warLeague.Name}"); } }
/// <summary> /// Retrieve clan's clan war log /// </summary> public async Task RetrieveClansClanWarLog() { var coc = new ClashOfClansClient(token); var clan = await coc.Clans.GetClanAsync(clanTag); if (clan.IsWarLogPublic) { var warLog = await coc.Clans.GetClanWarLogAsync(clanTag); foreach (var war in warLog.Items.Where(w => w.Result != null)) { Console.WriteLine($"{war.Result.ToString()![0]}: {Statistics(war.Clan)} vs {Statistics(war.Opponent)}");
/// <summary> /// Get information about a single player by player tag. /// </summary> public async Task GetPlayerInformation() { var coc = new ClashOfClansClient(token); var player = await coc.Players.GetPlayerAsync(playerTag); Console.WriteLine($"'{player.Name}' has {player.Trophies} \uD83C\uDFC6 and {player.WarStars} war stars"); if (player.Clan != null) { var d = player.Donations; var dr = player.DonationsReceived; Console.WriteLine($"'{player.Name}' is a member of '{player.Clan.Name}' and has a donation ratio {d}/{dr}={(dr != 0 ? (d / (float)dr) : 0):0.00}"); } }
/// <summary> /// Get player versus rankings for a specific location /// </summary> public async Task GetPlayerVersusRankingsForASpecificLocation() { var coc = new ClashOfClansClient(token); var locations = (LocationList)await coc.Locations.GetLocationsAsync(); var location = locations["Finland"]; var playerVersusRankings = (PlayerVersusRankingList)await coc.Locations.GetPlayerVersusRankingAsync(location.Id); foreach (var player in playerVersusRankings) { Console.WriteLine($"Rank {player.Rank}, {player.VersusTrophies} \uD83C\uDFC6, player {player.Name}"); } }
/// <summary> /// Get league seasons. Note that league season information is available only for Legend League. /// </summary> public async Task GetLeagueSeasons() { var coc = new ClashOfClansClient(token); var leagues = (LeagueList)await coc.Leagues.GetLeaguesAsync(); var legendLeague = leagues["Legend League"]; var leagueSeasons = (LeagueSeasonList)await coc.Leagues.GetLeagueSeasonsAsync(legendLeague.Id); Console.WriteLine($"Total amount of '{legendLeague.Name}' seasons: {leagueSeasons.Count}"); foreach (var season in leagueSeasons) { Console.WriteLine($"{season.Id}"); } }
/// <summary> /// Get clan versus rankings for a specific location /// </summary> public async Task GetClanVersusRankingsForASpecificLocation() { var coc = new ClashOfClansClient(token); var locations = (LocationList)await coc.Locations.GetLocationsAsync(); var location = locations["Finland"]; Console.WriteLine($"Clan versus rankings for {location.Name}"); var clanVersusRankings = (ClanVersusRankingList)await coc.Locations.GetClanVersusRankingAsync(location.Id); foreach (var clan in clanVersusRankings) { Console.WriteLine($"{clan.Rank}. {clan.Name}, clan level {clan.ClanLevel}, {clan.ClanVersusPoints} \uD83C\uDFC6"); } }
/// <summary> /// Search all clans by name and/or filtering the results using various criteria. /// </summary> public async Task SearchClans() { var query = new QueryClans { Name = "Phoenix", MinMembers = 40, MinClanLevel = 5, Limit = 10 }; var coc = new ClashOfClansClient(token); var clans = (ClanList)await coc.Clans.SearchClansAsync(query); foreach (var clan in clans) { Console.WriteLine($"{clan.Tag}/{clan.Name} has {clan.Members} members and is level {clan.ClanLevel} clan"); } }
/// <summary> /// Get player rankings for a specific location /// </summary> public async Task GetPlayerRankingsForASpecificLocation() { var coc = new ClashOfClansClient(token); var locations = (LocationList)await coc.Locations.GetLocationsAsync(); var location = locations["Finland"]; var query = new Query { Limit = 10 }; var playerRankings = (PlayerRankingList)await coc.Locations.GetPlayerRankingAsync(location.Id, query); Console.WriteLine($"{location.Name} top {query.Limit} @ {DateTime.Now}"); foreach (var player in playerRankings) { Console.WriteLine($"Rank {player.Rank}, {player.Trophies} \uD83C\uDFC6, player {player.Name}"); } }
/// <summary> /// Get league season rankings. Note that league season information is available only for Legend League. /// </summary> public async Task GetLeagueSeasonRankings() { var coc = new ClashOfClansClient(token); var leagues = (LeagueList)await coc.Leagues.GetLeaguesAsync(); var legendLeague = leagues["Legend League"]; var leagueSeasons = (LeagueSeasonList)await coc.Leagues.GetLeagueSeasonsAsync(legendLeague.Id); var lastSeason = leagueSeasons.Last(); var query = new Query { Limit = 100 }; var playerRankings = (PlayerRankingList)await coc.Leagues.GetLeagueSeasonRankingsAsync(legendLeague.Id, lastSeason.Id, query); foreach (var player in playerRankings) { Console.WriteLine($"{player.Rank}. {player.Name}, {player.Trophies} \uD83C\uDFC6, attacks won {player.AttackWins}, defenses won {player.DefenseWins}"); } }
static async Task Main(string[] args) { var coc = new ClashOfClansClient(Environment.GetEnvironmentVariable("COC_TOKEN"), TimeSpan.FromSeconds(2)); var tag = "#U8C2UP8L"; var tag2 = "#P8QLVCRC"; }