Skip to content

Petersil1998/Fade

Repository files navigation

Fade

Fade is an Object-Oriented Java Library, which takes over the Communication with the Valorant API. It supports In-Memory caching and uses a (blocking) Rate Limiter. It makes retrieving Match History, Leaderboards and static Data like Weapons, Maps, Player cards, etc. much easier.

Other Projects:

Usage

In Order for Fade to work properly there are a few things you need to set up at the beginning of your application.

public class Example {
    public static void main(String[] args) {
        // First we need to provide our Riot API Key. Ideally the API Key is encrypted
        Settings.setAPIKey(() -> EncryptionUtil.encrypt(System.getenv("API_KEY")));
        // If the provided API Key is encrypted, we need to provide a function to decrypt the API Key
        Settings.setDecryptor(EncryptionUtil::decrypt);
        // We also need to provide a language. The language is used to static Data like Champions, Item, etc.
        // NOTE: Not all Languages are supported. A list of supported Languages is available at https://dash.valorant-api.com
        Settings.setLanguage(Language.EN_US);
        // If we want to use caching we can enable it in the Settings. Caching is disabled by default
        Settings.useCache(true);
        // We also need to add the Loader for the static Valorant Data
        Loader.addLoader(new ValLoader());
        // Lastly we need to initialize the static Data
        Loader.init();
    }
}

Now Fade is ready and set up!

Examples

  • Leaderboards

    public class Example {
        public static void main(String[] args) {
            // Setup code...
            
            // First we get the Act ID of an act in a specific Episode.
            // In this example we get Act 1 of Episode 2
            String actId = Seasons.getEpisodeAct(2, 1).getId();
            // Now we can get the Leaderboard for a specific Region
            Leaderboard leaderboard = ValRanked.getLeaderboard(ValRegion.EU, actId);
            // We can get the total amount of Players in this Leaderboard
            int totalPlayer = leaderboard.getTotalPlayers();
            // We can also Iterate over the Players
            for(RankEntry player: leaderboard.getPlayers()) {
                // Get the Players rank
                int rank = player.getLeaderboardRank();
                // Get the Players Name
                String name = player.getName();
                // Get the Players Ranked Rating (LP)
                int rr = player.getRankedRating();
            }
        }
    } 

    Optionally we can pass a Filter Argument to the Leaderboard, which can have the following values:

    Key Description Type
    size Number of Rank Entries (Players) returned. Has to be between 1 and 200, defaults to 200. int
    startIndex The Start Index (Offset) for the Rank Entries (Players). Defaults to 0. int

    Note: All values need to be passed as Strings in the filter

  • Match Details

    public class Example { 
        public static void main(String[] args) {
            // Setup code...
            
            // First we get the Player's Account
            Account me = Account.getAccountByRiotId("Destroyer", "boom", Region.EUROPE);
            // Now we can get the Player's Match History
            List<MatchDetails> matchHistory = MatchDetails.getMatchHistory(me.getPuuid(), ValRegion.EU);
            // Or we can also get a List of Recent Matches in a specific Queue
            List<MatchDetails> recentMatches = MatchDetails.getRecentMatches(QueueType.COMPETITIVE, ValRegion.NA);
    
            // Now we can iterate over the Match Details
            for(MatchDetails details: matchHistory) {
                // This allows us to get game-specific information like Map played, the Season in which the game was played or the start time
                Map map = details.getMap();
                Season season = details.getSeason();
                long startTime = details.getGameStartMillis();
                // But we can also get Information about the Players
                List<Player> players = details.getPlayers();
    
                for (Player player: players) {
                    // Now we can get Player-specific Data like Agent, Player Card and Title
                   Agent agent = player.getAgent();
                    PlayerCard card = player.getPlayerCard();
                    PlayerTitle title = player.getPlayerTitle();
    
                    // It also provides additional Data like kill, deaths, assists
                    Player.Stats stats = player.getStats();
                    int kills = stats.getKills();
                    int deaths = stats.getDeaths();
                    int assists = stats.getAssists();
                }
    
                // We can also get data about each Round in the Game
                List<RoundResult> roundResults = details.getRoundResults();
                for (RoundResult roundResult: roundResults) {
                    int round = roundResult.getRoundNum();
                    Player planter = roundResult.getBombPlanter();
                    Team team = roundResult.getWinningTeam();
                }
            }
        }
    } 
  • Collections

    The package collection contains a bunch of Collections for static Data including:

    • Agents
    • Bundles
    • Competitive Tiers
    • Contracts
    • Events
    • Maps
    • Player Cards and Titles
    • Seasons
    • Sprays
    • Weapons
    • ...

Feel free to give Feedback and add suggestions on how this library can be improved.
Thank you for using Fade, you're awesome!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages