Kunc.RiotGames.Lol.LeagueClientUpdate 0.1.1

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Kunc.RiotGames.Lol.LeagueClientUpdate --version 0.1.1                
NuGet\Install-Package Kunc.RiotGames.Lol.LeagueClientUpdate -Version 0.1.1                
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="Kunc.RiotGames.Lol.LeagueClientUpdate" Version="0.1.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Kunc.RiotGames.Lol.LeagueClientUpdate --version 0.1.1                
#r "nuget: Kunc.RiotGames.Lol.LeagueClientUpdate, 0.1.1"                
#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.
// Install Kunc.RiotGames.Lol.LeagueClientUpdate as a Cake Addin
#addin nuget:?package=Kunc.RiotGames.Lol.LeagueClientUpdate&version=0.1.1

// Install Kunc.RiotGames.Lol.LeagueClientUpdate as a Cake Tool
#tool nuget:?package=Kunc.RiotGames.Lol.LeagueClientUpdate&version=0.1.1                

Kunc.RiotGames.Lol.LeagueClientUpdate

How to use

Lockfile lockfile = await Lockfile.FromFileAsync();
LolLeagueClientUpdate lcu = new LolLeagueClientUpdate(lockfile);

API

To send an API request, you have 2 options:

  1. Use the predefined methods (GetAsync/SendAsync) that are a wrapper around HttpClinet.
  2. Use HttpClient directly (property Client), so you can use many existing methods.
var obj = new { challengeIds = new long[] { -1, -1, -1 } };
await lcu.SendAsync(HttpMethod.Post, "lol-challenges/v1/update-player-preferences/", obj);
await lcu.Client.PostAsJsonAsync("lol-challenges/v1/update-player-preferences/", obj);

RootObject obj1 = await lcu.GetAsync<RootObject>("lol-summoner/v1/current-summoner");
RootObject obj2 = await lcu.Client.GetFromJsonAsync<RootObject>("lol-summoner/v1/current-summoner");

class RootObject { /* Properties */ }

WebSocket

To subscribe a lcu event, you have 2 options:

  1. Call Subscribe with event uri and pass event delegate.
  2. Create a class with public (static) methods and place LcuEventAttribute on it, than call SubscribeAll<T>(), if the class has any dependencies in the constructor, you can call SubscribeAll<T>(T obj) and pass the created class.

When you create a class or use Subscibe with a System.Delegate, you can create any method that has any return type and has 0-3 parameters, the parameters can be

  1. object/LolLeagueClientUpdate for "sender"
  2. CancelationToken
  3. and anything else will be a lcu event argument

Don't forget to call ConnectAsync to start WebSocket.

lcu.Subscribe<LcuEventArgs<string>>("/lol-gameflow/v1/gameflow-phase", (sender, arg) => Console.WriteLine(arg.Data));

lcu.SubscribeAll<SomeClass>();
var obj = new SomeClassWithDependencies(DateTime.Now);
lcu.SubscribeAll(obj);

await lcu.ConnectAsync();

class SomeClass
{
    [LcuEvent("/lol-gameflow/v1/gameflow-phase")]
    public void MyMethod1(object? sender, LcuEventArgs<string> data) 
        => Console.WriteLine(data.Data);
        
    [LcuEvent("/lol-gameflow/v1/gameflow-phase")]
    public void MyMethod2() => Console.WriteLine("without params");

    [LcuEvent("/lol-gameflow/v1/gameflow-phase")]
    public int MyMethod3() 
    {
        Console.WriteLine("Return int, without params");
        return 6;
    }
}
class SomeClassWithDependencies
{
    public SomeClassWithDependencies(DateTime dt) { }

    [LcuEvent("/lol-gameflow/v1/gameflow-phase")]
    public void MyMethod1(object? sender, LcuEventArgs<string> data) 
        => Console.WriteLine(data.Data);
}

Disclaimer

Kunc.RiotGames.Lol.LeagueClientUpdate 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net6.0

    • No dependencies.
  • net7.0

    • No dependencies.

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
0.2.0 118 8/13/2024
0.1.8 72 7/26/2024
0.1.7 94 6/28/2024
0.1.6 92 6/18/2024
0.1.5 91 6/2/2024
0.1.4 112 4/24/2024
0.1.3 162 10/8/2023
0.1.2 153 5/23/2023
0.1.1 237 2/22/2023
0.1.0 263 1/17/2023