libosrs

Crates.iolibosrs
lib.rslibosrs
version0.1.4
sourcesrc
created_at2022-10-04 06:18:06.928975
updated_at2022-10-20 15:01:07.849346
descriptionAn Oldschool Runescape API written in Rust
homepage
repositoryhttps://github.com/phongse/libosrs/
max_upload_size
id679650
size50,099
Phong Tran (phongse)

documentation

README

libosrs

An Oldschool RuneScape API library written in Rust. Can serialize the output into JSON format.

Examples

use libosrs;
use libosrs::gamemode::Gamemode;

#[tokio::main]
async fn main() {
    let name = "Soupshi";
    let mut gamemode: Gamemode = Gamemode::Auto;

    let client = libosrs::ClientOSRS::new();

    let soupshi = client.get_hiscore(name, gamemode).await.unwrap();

    println!("Overall: {:#?}", soupshi.skills.overall);
    println!("Agility level: {}", soupshi.skills.agility.level);
    println!("Agility xp: {}", soupshi.skills.agility.xp);
    println!("Vorkath rank: {}", soupshi.bosses.vorkath.rank);
    println!("Vorkath kills: {}", soupshi.bosses.vorkath.score);

    // Pass a Hiscore struct and return json
    println!("JSON output: {}", soupshi.to_json());

    // Try to retrieve a players current gamemode
    gamemode = client.get_player_gamemode(name).await;
    println!("{:#?}", gamemode);

    // Request hiscore from API and return json
    println!(
        "JSON output: {}",
        client.get_hiscore_json(name, gamemode).await
    );

    // Get Player struct and Player json
    println!("{:#?}", client.get_player(name, gamemode).await);
    println!(
        "JSON output: {}",
        client.get_player_json(name, gamemode).await
    );
}

Game modes

Gamemode::Auto
Gamemode::Regular
Gamemode::Ironman
Gamemode::Hardcore
Gamemode::Ultimate
Gamemode::Deadman
Gamemode::Seasonal
Gamemode::Tournament

Auto will try to fetch a player's current game mode from Regular, Ironman, Hardcore and Ultimate, i.e. a player who used to be Iron Man but converted to regular will output their regular game stats. Only works if they gained Xp or Boss scores after conversion.

Struct names

See the docs.rs page.

Todo

  • Blocking IO
  • Serialize to json without re-calling RuneScape API
  • Formatters
  • Grand Exchange
Commit count: 0

cargo fmt