#public-api #minecraft #rate-limiting #hypixel #complete #asynchronous #sky-block

rs-pixel

一个完整的、速率限制的、异步的 Rust 实现 Hypixel 公共 API,具有广泛的 SkyBlock 支持

3 个不稳定版本

0.2.0 2023年7月22日
0.1.1 2022年10月13日
0.1.0 2022年7月25日

#290 in 游戏

每月27次下载

MIT/Apache

83KB
2K SLoC

rs-pixel   构建状态 最新版本 Discord

一个完整的、速率限制的、异步的 Rust 实现 Hypixel 公共 API,具有广泛的 SkyBlock 支持。

[dependencies]
rs-pixel = "0.2.0"

入门

您需要一个 Hypixel API 密钥来访问大多数端点 (官方文档)。

创建实例

使用默认配置

let mut api = RsPixel::new("API KEY").await.unwrap();

或者配置客户端,Minecraft 用户名/UUID API 类型,以及速率限制策略

let config = ConfigBuilder::default()
    .client(surf::Config::new().try_into().unwrap())
    .minecraft_api_type(ApiType::PlayerDb)
    .rate_limit_strategy(RateLimitStrategy::Error)
    .into();
let mut api = RsPixel::from_config("API KEY", config).await.unwrap();

示例

打印玩家的名称和等级

let uuid = &api.username_to_uuid("USERNME").await.unwrap().uuid;
let response = api.get_player(uuid).await.unwrap();

println!(
    "{} has the {} rank",
    response.get_name().unwrap(),
    response.get_rank()
);

打印 SkyBlock 玩家的统计数据

let uuid = &api.username_to_uuid("USERNME").await.unwrap().uuid;
let response = api.get_skyblock_profiles(uuid).await.unwrap();
let profile = response.get_selected_profile().unwrap();

println!(
    "Enderman Slayer XP: {}\nCombat Skill Level: {}\nCatacombs LeveL: {}",
    profile.get_slayer(uuid, "enderman").unwrap().current_exp,
    profile.get_skill(uuid, "combat").unwrap().level,
    profile.get_catacombs(uuid).unwrap().level
);

打印 SkyBlock 玩家的库存内容(NBT 解析为 JSON)

let uuid = "UUID";
let response = api.get_skyblock_profiles(uuid).await.unwrap();
let profile = response.get_selected_profile().unwrap();

println!("Inventory Contents:  {}", profile.get_inventory(uuid).unwrap());

获取第一页并打印第一场拍卖

let response = api.get_skyblock_auctions(0).await.unwrap();
let auction = response.auctions.get(0).unwrap();

println!(
    "The starting bid for a {} is {} coins",
    auction.item_name, auction.starting_bid
);

待办事项

  • 文档
  • 更多示例

许可 & 贡献

许可协议为 Apache License, Version 2.0MIT 许可证,任选其一。

除非您明确表示,否则您有意提交以包含在此软件包中的任何贡献,根据 Apache-2.0 许可证定义,均应双重许可,无需任何额外的条款或条件。

依赖项

~12–26MB
~379K SLoC