#runescape #oldschool #api #game #tokio #player #gamemode

bin+lib libosrs

用 Rust 编写的 Oldschool Runescape API

5 个版本

0.1.4 2022年10月20日
0.1.3 2022年10月11日
0.1.2 2022年10月6日
0.1.1 2022年10月4日
0.1.0 2022年10月4日

533游戏

MIT 许可证

22KB
537

libosrs

一个用 Rust 编写的 Oldschool RuneScape API 库。可以将输出序列化为 JSON 格式。

示例

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
    );
}

游戏模式

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

Auto 将尝试从 RegularIronmanHardcoreUltimate 中获取玩家的当前游戏模式,即原本是 Iron Man 但转为普通模式的玩家将输出其普通游戏统计数据。只有在转换后获得 Xp 或 Boss 分数时才有效。

结构名

请参阅 docs.rs 页面。

待办事项

  • 阻塞 I/O
  • 不重新调用 RuneScape API 就序列化为 json
  • 格式化程序
  • 大交易所

依赖关系

~7–19MB
~281K SLoC