Skip to content
This repository has been archived by the owner on Mar 15, 2024. It is now read-only.
/ RiotBlossom Public archive

An asynchronous, extensible, and magical Riot Games API wrapper library for C#. ☆*:.。.o(≧▽≦)o.。.:*☆

License

Notifications You must be signed in to change notification settings

BlossomiShymae/RiotBlossom

Repository files navigation

RiotBlossom

NuGet Stable NuGet Downloads

An asynchronous, extensible, and magical Riot Games API wrapper library for C#. ☆*:.。.o(≧▽≦)o.。.:*☆

This library helps to make things totes' easier! Goodies include naive cache, rate limiter, and retry middleware plugins out of the box. Other services such as DataDragon and CommunityDragon are also supported! \(^▽^)/

This library is currently compatible with .NET 6 and higher.

Contributor Flowerlets


Made with contrib.rocks.

Table of Contents

Documentation, tutorials, and more!

Dedicated GitHub pages for RiotBlossom documentation can be found here! :3

Features

  • Asynchronous, immutable record, no-conversion API
    • API data comes as is from the source (Data transfer objects)
  • In-memory caching, spread rate limiting, and automatic retrying out of the box
  • Fluent client builder for advanced configuration
  • A highly configurable HTTP middleware system
    • Allows implementing your middleware (choosing a database to cache with)
    • Extensible subsystems (one for Riot API, one for the rest)
  • Reuseable data transfer objects, types, and exceptions
  • Common utilities (extensions, mappers, and converters)
  • Riot Games API support (yep!)
    • League of Legends
    • Teamfight Tactics
    • Legends of Runeterra
    • VALORANT
  • DataDragon support
  • CommunityDragon support
  • MerakiAnalytics support
  • Love (੭ु ›ω‹ )੭ु⁾⁾♡

Installation

Install via NuGet, BlossomiShymae.RiotBlossom. For package manager console:

Install-Package BlossomiShymae.RiotBlossom

Or the .NET CLI:

dotnet add package BlossomiShymae.RiotBlossom

Endpoints

Riot Api

  • ⭕ Account-v1 (no RSO)

League of Legends

  • ✅ Champion-Mastery-v4
  • ✅ Champion-v3
  • ✅ Clash-v1
  • ❌ League-Exp-v4 (will not support, experimental endpoint)
  • ✅ League-v4
  • ✅ Lol-Challenges-v1
  • ✅ Lol-Status-v4
  • ✅ Match-v5
  • ✅ Spectator-v4
  • ⭕ Summoner-v4 (no RSO)
  • ❌ Tournament-Stub-v4 (will not support, an endpoint that is associated with being unreliable)
  • ❌ Tournament-v4 (will not support)

Teamfight Tactics

  • ✅ Tft-League-v1
  • ✅ Tft-Match-v1
  • ✅ Tft-Status-v1
  • ⭕ Tft-Summoner-v1 (no RSO)

Legends of Runeterra

  • ⭕ Lor-Deck-v1 (no RSO, currently not supported)
  • ⭕ Lor-Inventory-v1 (no RSO, currently not supported)
  • ✅ Lor-Match-v1
  • ✅ Lor-Ranked-v1
  • ✅ Lor-Status-v1

VALORANT

  • ✅ Val-Content-v1
  • ✅ Val-Match-v1 ("Unsure if this works as I do not have access to this endpoint for testing ˚‧º·(˚ ˃̣̣̥⌓˂̣̣̥ )‧º·˚" - BlossomiShymae)
  • ✅ Val-Ranked-v1
  • ✅ Val-Status-v1

DataDragon

  • ✅ Champions (championFull.json)
  • ✅ Items (item.json)
  • ✅ Perks (runesReforged.json)

CommunityDragon

MerakiAnalytics

  • ✅ Champions (champions.json and individual files)
  • ✅ Items (items.json and individual files)

Dependent packages

Contributing

Create an issue or submit a pull request! ˖⁺‧₊˚ ♡ ˚₊‧⁺˖

Before submitting a pull request, be sure to include unit tests if applicable. Unit tests use common objects from the StubConfig file. Be sure to include your Riot API key under the RIOT_API_KEY system environment variable.

License

This library is under the MIT license.

Disclaimer

RiotBlossom 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.

Appendix

Star History

Star History Chart

Inspiration

TheDrone7. shieldbow, GitHub, https://github.com/TheDrone7/shieldbow

Samuel, Mingwei. Camille, GitHub, https://github.com/MingweiSamuel/Camille

Rua, Rob and Maldonis, Jason J. Orianna, GitHub, https://github.com/meraki-analytics/orianna

Resources

Ray and Riot Games. Rate Limiting, Hextechdocs, https://hextechdocs.dev/rate-limiting/

https://developer.riotgames.com/

https://discord.com/invite/riotgamesdevrel (Note: Searching in this Discord contains aggregated information not found elsewhere)

Conventions

https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/coding-style/coding-conventions

https://learn.microsoft.com/en-us/dotnet/csharp/asynchronous-programming/task-asynchronous-programming-model