Camille.Lcu
3.0.0-nightly-2022-01-19-e2d99a371d
See the version list below for details.
dotnet add package Camille.Lcu --version 3.0.0-nightly-2022-01-19-e2d99a371d
NuGet\Install-Package Camille.Lcu -Version 3.0.0-nightly-2022-01-19-e2d99a371d
<PackageReference Include="Camille.Lcu" Version="3.0.0-nightly-2022-01-19-e2d99a371d" />
paket add Camille.Lcu --version 3.0.0-nightly-2022-01-19-e2d99a371d
#r "nuget: Camille.Lcu, 3.0.0-nightly-2022-01-19-e2d99a371d"
// Install Camille.Lcu as a Cake Addin #addin nuget:?package=Camille.Lcu&version=3.0.0-nightly-2022-01-19-e2d99a371d&prerelease // Install Camille.Lcu as a Cake Tool #tool nuget:?package=Camille.Lcu&version=3.0.0-nightly-2022-01-19-e2d99a371d&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).
var riotApi = RiotApi.NewInstance("RGAPI-12345678-abcd-1234-abcd-123456abcdef");
// OR
var riotApi = RiotApi.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
Source code is located in the
src/
directory, corresponding
to the MingweiSamuel.Camille
namespace.
RiotApi.cs
is the main
point of entry for interfacing with Camille, however this source file is only a partial class. The remainder
of the class is automatically generated and not commited to the master
branch, but is viewable as described
below in the "Generated Classes" section.
Files in the
src/util
directory/MingweiSamuel.Camille.Util
namespace
are internal classes used for sending requests and handling rate limits.
Generated Classes
The majority of the code in Camille is automatically generated. The generated sources are not commited to
the master branch, but
are available in the gh-pages
branch in the _gen/
directory.
GeneratedClasses.cs contains all endpoints, and therefore endpoint methods, as well as all the data transfer objects corresponding to the JSON returned by the Riot API.
Champion.cs is an enum for working with champion IDs.
RiotApiConfig.cs is the configuration builder
code for creating RiotApi
instnaces with custom settings.
The actual code for generating these classes is in the
src/gen
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 is compatible. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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. |
.NET Core | netcoreapp2.1 is compatible. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 is compatible. |
.NET Standard | netstandard2.1 is compatible. |
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 2.1
- Camille.Core (>= 3.0.0-nightly-2022-01-19-e2d99a371d)
- Camille.Enums (>= 3.0.0-nightly-2022-01-19-e2d99a371d)
- MingweiSamuel.TokenBucket (>= 1.0.1)
- Newtonsoft.Json (>= 9.0.1)
-
.NETCoreApp 3.1
- Camille.Core (>= 3.0.0-nightly-2022-01-19-e2d99a371d)
- Camille.Enums (>= 3.0.0-nightly-2022-01-19-e2d99a371d)
- MingweiSamuel.TokenBucket (>= 1.0.1)
-
.NETStandard 2.1
- Camille.Core (>= 3.0.0-nightly-2022-01-19-e2d99a371d)
- Camille.Enums (>= 3.0.0-nightly-2022-01-19-e2d99a371d)
- MingweiSamuel.TokenBucket (>= 1.0.1)
- Newtonsoft.Json (>= 9.0.1)
- System.Collections.Immutable (>= 1.6.0)
- System.ComponentModel.Annotations (>= 4.6.0)
- System.Text.Json (>= 4.6.0)
-
net5.0
- Camille.Core (>= 3.0.0-nightly-2022-01-19-e2d99a371d)
- Camille.Enums (>= 3.0.0-nightly-2022-01-19-e2d99a371d)
- MingweiSamuel.TokenBucket (>= 1.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.