Camille.LolGame
                             
                            
                                3.0.0-nightly-2023-11-28-6dcc80abc0
                            
                        
                    See the version list below for details.
dotnet add package Camille.LolGame --version 3.0.0-nightly-2023-11-28-6dcc80abc0
NuGet\Install-Package Camille.LolGame -Version 3.0.0-nightly-2023-11-28-6dcc80abc0
<PackageReference Include="Camille.LolGame" Version="3.0.0-nightly-2023-11-28-6dcc80abc0" />
<PackageVersion Include="Camille.LolGame" Version="3.0.0-nightly-2023-11-28-6dcc80abc0" />
<PackageReference Include="Camille.LolGame" />
paket add Camille.LolGame --version 3.0.0-nightly-2023-11-28-6dcc80abc0
#r "nuget: Camille.LolGame, 3.0.0-nightly-2023-11-28-6dcc80abc0"
#:package Camille.LolGame@3.0.0-nightly-2023-11-28-6dcc80abc0
#addin nuget:?package=Camille.LolGame&version=3.0.0-nightly-2023-11-28-6dcc80abc0&prerelease
#tool nuget:?package=Camille.LolGame&version=3.0.0-nightly-2023-11-28-6dcc80abc0&prerelease
Camille
C# Library for the Riot Games API
Camille's goals are speed, reliability, and maintainability. Camille handles rate limits and large requests with ease. Data classes are automatically generated from the Riot API Reference (Swagger).
Features
- Fast, asynchronous, thread-safe.
 - Automatically retries failed requests.
 - Automatic up-to-date nightlies, reflecting Riot API changes within 24 hours.
 - Multi-targeted: .NET Standard 1.1+, .NET Framework 4.5+, .NET Core 2.0, .NET Standard 2.1+, .NET Core 3.0+.
 - Highly-configurable.
 - Riot API LOL-V4, TFT, LOR support.
 - C# 8 nullable support.
 
Installation
Install via NuGet (Camille.RiotGames).
Type the following in the package manager console:
Install-Package Camille.RiotGames -IncludePrerelease
Or use the .NET CLI:
dotnet add package Camille.RiotGames --prerelease
Usage
All API interactions are done using a RiotApi instance.
RiotApi.NewInstance takes either just an API key (for default settings) or a IRiotApiConfig instance (for custom settings).
using Camille.Enums;
using Camille.RiotGames;
var riotApi = RiotGamesApi.NewInstance("RGAPI-12345678-abcd-1234-abcd-123456abcdef");
// OR
var riotApi = RiotGamesApi.NewInstance(
    new RiotApiConfig.Builder("RGAPI-12345678-abcd-1234-abcd-123456abcdef")
    {
        MaxConcurrentRequests = 200,
        Retries = 10,
        // ...
    }.Build()
);
You can find all configuration options here.
API methods are divided up into respective endpoints, corresponding to the left bar of the API reference.
Example
Print Summoner's Top Champions
// Get summoners by name synchronously. (Note: async is faster as it allows simultaneous requests).
var summoners = new[]
{
    riotApi.SummonerV4().GetBySummonerName(PlatformRoute.NA1, "jAnna kendrick"),
    riotApi.SummonerV4().GetBySummonerName(PlatformRoute.NA1, "lug nuts k")
};
foreach (var summoner in summoners)
{
    Console.WriteLine($"{summoner.Name}'s Top 10 Champs:");
    var masteries =
        riotApi.ChampionMasteryV4().GetAllChampionMasteries(PlatformRoute.NA1, summoner.Id);
    for (var i = 0; i < 10; i++)
    {
        var mastery = masteries[i];
        // Get champion for this mastery.
        var champ = (Champion) mastery.ChampionId;
        // print i, champ id, champ mastery points, and champ level
        Console.WriteLine("{0,3}) {1,-16} {2,10:N0} ({3})", i + 1, champ.ToString(),
            mastery.ChampionPoints, mastery.ChampionLevel);
    }
    Console.WriteLine();
}
Output (2022-01-17):
Janna Kendrick's Top 10 Champs:
  1) EKKO              1,803,701 (7)
  2) PYKE                266,410 (7)
  3) SYLAS               193,439 (7)
  4) MASTERYI            134,140 (7)
  5) MORDEKAISER         127,937 (7)
  6) YASUO                93,904 (7)
  7) VIEGO                88,267 (7)
  8) AHRI                 82,106 (7)
  9) JINX                 76,788 (6)
 10) POPPY                74,982 (7)
    
LugnutsK's Top 10 Champs:
  1) ZYRA                841,132 (7)
  2) SORAKA               81,793 (6)
  3) MORGANA              62,917 (5)
  4) SONA                 55,073 (6)
  5) NAMI                 49,917 (6)
  6) JANNA                46,563 (5)
  7) BRAND                46,401 (5)
  8) TARIC                41,302 (6)
  9) EKKO                 40,245 (5)
 10) POPPY                33,859 (5)
API Reference
Automatically generated API Reference
Source Code
Projects are located in src/.
Generated Classes
The majority of the code in Camille is automatically generated. The generated sources are not commited to
the master branch, but can be viewed in the gh-pages branch
or when building locally.
The actual code for generating these classes is in the
srcgen folder.
The C#-generating code is in *.cs.dt files and is written in NodeJS, using
doT.js templates.
| Product | Versions Compatible and additional computed target framework versions. | 
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. | 
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 is compatible. | 
| .NET Standard | netstandard2.1 is compatible. | 
| .NET Framework | net461 is compatible. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. | 
| MonoAndroid | monoandroid was computed. | 
| MonoMac | monomac was computed. | 
| MonoTouch | monotouch was computed. | 
| Tizen | tizen60 was computed. | 
| Xamarin.iOS | xamarinios was computed. | 
| Xamarin.Mac | xamarinmac was computed. | 
| Xamarin.TVOS | xamarintvos was computed. | 
| Xamarin.WatchOS | xamarinwatchos was computed. | 
- 
                                                    
.NETCoreApp 3.1
- Camille.Core (>= 3.0.0-nightly-2023-11-28-6dcc80abc0)
 - Camille.Enums (>= 3.0.0-nightly-2023-11-28-6dcc80abc0)
 - MingweiSamuel.TokenBucket (>= 1.0.2)
 - System.Text.Json (>= 6.0.0)
 
 - 
                                                    
.NETFramework 4.6.1
- Camille.Core (>= 3.0.0-nightly-2023-11-28-6dcc80abc0)
 - Camille.Enums (>= 3.0.0-nightly-2023-11-28-6dcc80abc0)
 - MingweiSamuel.TokenBucket (>= 1.0.2)
 - System.ComponentModel.Annotations (>= 4.6.0)
 - System.Net.Http (>= 4.3.4)
 - System.Text.Json (>= 6.0.0)
 
 - 
                                                    
.NETStandard 2.1
- Camille.Core (>= 3.0.0-nightly-2023-11-28-6dcc80abc0)
 - Camille.Enums (>= 3.0.0-nightly-2023-11-28-6dcc80abc0)
 - MingweiSamuel.TokenBucket (>= 1.0.2)
 - System.ComponentModel.Annotations (>= 4.6.0)
 - System.Text.Json (>= 6.0.0)
 
 - 
                                                    
net6.0
- Camille.Core (>= 3.0.0-nightly-2023-11-28-6dcc80abc0)
 - Camille.Enums (>= 3.0.0-nightly-2023-11-28-6dcc80abc0)
 - MingweiSamuel.TokenBucket (>= 1.0.2)
 
 - 
                                                    
net7.0
- Camille.Core (>= 3.0.0-nightly-2023-11-28-6dcc80abc0)
 - Camille.Enums (>= 3.0.0-nightly-2023-11-28-6dcc80abc0)
 - MingweiSamuel.TokenBucket (>= 1.0.2)
 
 
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.