MikaelDui.RiotGames.Client 12.5.1.347

Suggested Alternatives

Camille.RiotApi

Additional Details

I've managed to get permabanned so I've ceased development on my Riot-related projects.

This package has a SemVer 2.0.0 package version: 12.5.1.347+995e491.
dotnet add package MikaelDui.RiotGames.Client --version 12.5.1.347
                    
NuGet\Install-Package MikaelDui.RiotGames.Client -Version 12.5.1.347
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MikaelDui.RiotGames.Client" Version="12.5.1.347" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MikaelDui.RiotGames.Client" Version="12.5.1.347" />
                    
Directory.Packages.props
<PackageReference Include="MikaelDui.RiotGames.Client" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MikaelDui.RiotGames.Client --version 12.5.1.347
                    
#r "nuget: MikaelDui.RiotGames.Client, 12.5.1.347"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MikaelDui.RiotGames.Client@12.5.1.347
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MikaelDui.RiotGames.Client&version=12.5.1.347
                    
Install as a Cake Addin
#tool nuget:?package=MikaelDui.RiotGames.Client&version=12.5.1.347
                    
Install as a Cake Tool

Riot Games .NET Client (unofficial)

Daily Test (@main) .NET CodeQL

image

An unofficial .NET Client for Riot Games and their games League of Legends, Legends of Runeterra, Teamfight Tactics and Valorant.

✅ Purpose-built Open API client generator

✅ Vanilla C# - Code generation done with Roslyn.

✅ Auto-generated overloads for CLR objects.

✅ Continuously tested against the live API.

✅ All tests required to be successful before deploy.

✅ Performance tested - the extra classes have no measurable impact.

✅ Optimized - you call the HttpClient almost directly.

Embedded symbols and Source link - see the source code while debugging.

Deterministic build - byte-for-byte output is identical across compilations.

❌ POST, PUT, DELETE and queries - for that, use other libraries for now (e.g. for RGAPI, Camille, and or LCU, PoniLCU).

❌ Game API - for that, use other libraries for now (e.g. Camille).

Sponsors

A big thank you for your support!

Sentry Logo JetBrains Logo (Main) logo

Demo

You can see the library running in your browser using Blazor at masteries.quest, which has a Cloudflare Workers proxy between the browser and Riot Games API.

Download

You can find the latest releases on GitHub Packages and on NuGet.org.

To install the latest version of the package, type the following in the package manager console:

Install-Package MikaelDui.RiotGames.Client
    

Or use the .NET CLI reference the latest stable and stay up-to-date:

dotnet add package MikaelDui.RiotGames.Client --version *

You can also use a PackageReference to stay up-to-date with the latest stable build:

<PackageReference Include="MikaelDui.RiotGames.Client" Version="*" />

Examples

Getting League of Legends masteries

using RiotGames.LeagueOfLegends;
using LeagueOfLegendsClient client = new("RGAPI-SUPERSECRET", Server.NA);

var summoner = await client.GetSummonerByNameAsync("Some summoner name");
var masteries = await client.GetMasteriesAsync(summoner);
foreach(var mastery in masteries)
    Console.WriteLine($"Champion #{mastery.ChampionId}: {mastery.championPoints} points");

Getting Legends of Runeterra leadersboard

using RiotGames.LegendsOfRuneterra;
using LegendsOfRuneterraClient client = new("RGAPI-SUPERSECRET", RegionRoute.AMERICAS);

var leaderboards = await client.GetRankedLeaderboardsAsync();
foreach(var player in leaderboards.Players)
    Console.WriteLine($"Player #{player.Name}: {player.Lp} LP");

Getting Teamfight Tactics league entires

using RiotGames.TeamfightTactics;
using TeamfightTacticsClient client = new("RGAPI-SUPERSECRET", PlatformRoute.NA1);

var leagueEntries = await client.GetLeagueEntriesAsync("some-summoner-ID");
foreach(var entry in leagueEntries)
    Console.WriteLine($"Player #{entry.SummonerName}: {player.LeaguePoints} LP");

Getting a Valorant match

using RiotGames.Valorant;
using ValorantClient client = new("RGAPI-SUPERSECRET", ValPlatformRoute.EU);

var match = await client.GetMatchAsync("some-match-ID");
foreach(var player in match.Players)
    Console.WriteLine($"Player #{player.Title} played champion #{player.ChampionId}");

Doing multi-game stuff

Using the RiotGamesClient class gives you easy access to multiple game clients at once.

using RiotGames;
using RiotGamesClient client = new("RGAPI-SUPERSECRET", PlatformRoute.NA1, ValPlatformRoute.NA);

var lolSummoner = await client.LeagueOfLegends.GetSummonerByNameAsync("some-summoner-name");
var lolMasteries = await client.LeagueOfLegends.GetMasteriesAsync(summoner);
foreach(var mastery in lolMasteries)
    Console.WriteLine($"Champion #{mastery.ChampionId}: {mastery.championPoints} points");

var lorLeaderboards = await client.LegendsOfRuneterra.GetRankedLeaderboardsAsync();
foreach(var player in lorLeaderboards.Players)
    Console.WriteLine($"Player #{player.Name}: {player.Lp} LP");

Getting the current League of Legends champ select

You can use the LeagueClient to communicate directly with the League Client (aka LCU).

using RiotGames.LeagueOfLegends.LeagueClient;
using LeagueClient.LeagueOfLegendsClient client = new();

var session = await client.ChampSelect.GetSessionAsync();
foreach(var teamMember in session.MyTeam)
{
    var summoner = await client.Summoners.GetSummonerAsync(teamMember);
    Console.WriteLine($"Team member: {summoner.DisplayName}");
}

Generated Code

The generated code looks like this:

image

Sub-packages

The client includes these sub-packages:

Notice from Riot Games

Riot Games .NET Client (unofficial) isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing Riot Games properties. Riot Games, and all associated properties are trademarks or registered trademarks of Riot Games, Inc.

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  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 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.  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 netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net461 was computed.  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 tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
12.5.1.347 409 3/20/2022 12.5.1.347 is deprecated because it is no longer maintained.
12.5.1.346 228 3/12/2022 12.5.1.346 is deprecated because it is no longer maintained.
12.5.1.345-pull-request.71 172 3/12/2022 12.5.1.345-pull-request.71 is deprecated because it is no longer maintained.
12.4.1.343 275 2/20/2022 12.4.1.343 is deprecated because it is no longer maintained.
12.4.1.341 230 2/20/2022 12.4.1.341 is deprecated because it is no longer maintained.
12.4.1.340 238 2/19/2022 12.4.1.340 is deprecated because it is no longer maintained.
12.4.1.339-pull-request.65 156 2/19/2022 12.4.1.339-pull-request.65 is deprecated because it is no longer maintained.
12.4.1.336 234 2/18/2022 12.4.1.336 is deprecated because it is no longer maintained.
12.4.1.335-pull-request.64 180 2/18/2022 12.4.1.335-pull-request.64 is deprecated because it is no longer maintained.
12.4.1.333-pull-request.64 189 2/18/2022 12.4.1.333-pull-request.64 is deprecated because it is no longer maintained.
12.4.1.323 172 2/18/2022 12.4.1.323 is deprecated because it is no longer maintained.
12.4.1.322-features.queries 166 2/18/2022 12.4.1.322-features.queries is deprecated because it is no longer maintained.
12.4.1.320 216 2/18/2022 12.4.1.320 is deprecated because it is no longer maintained.
12.4.1.319 183 2/18/2022 12.4.1.319 is deprecated because it is no longer maintained.
12.4.1.318 211 2/17/2022 12.4.1.318 is deprecated because it is no longer maintained.
12.4.1.313 224 2/16/2022 12.4.1.313 is deprecated because it is no longer maintained.
12.4.1.312 227 2/16/2022 12.4.1.312 is deprecated because it is no longer maintained.
12.4.1.311 181 2/16/2022 12.4.1.311 is deprecated because it is no longer maintained.
12.3.1.310 183 2/13/2022 12.3.1.310 is deprecated because it is no longer maintained.
12.3.1.309 222 2/13/2022 12.3.1.309 is deprecated because it is no longer maintained.
Loading failed