#api #minecraft #mojang

mojang

🕹ī¸ Interface for the Mojang API

1 unstable release

Uses new Rust 2021

0.1.0 Nov 7, 2021

#98 in #minecraft

26 downloads per month

GPL-3.0 license

24KB
358 lines

🕹ī¸ mojang

Rust Interface to the Mojang API!

🚀 Install

Just add the following to your Cargo.toml:

[dependencies]
mojang = "0.1.0"

📄 Info

Unofficial Rust Crate that interfaces with the Mojang HTTP API. Mojang API docs here

For more information on this lib check the docs here

đŸ’Ĩ Examples

đŸĻĻ Players

Get UUID from name / Name from UUID

// Import lib
use mojang::Player;

// Make a new Player
// This can be with player name or UUID
let p1 = Player::new("Sigma76").unwrap();

let p2 = Player::new("3c358264-b456-4bde-ab1e-fe1023db6679").unwrap();

assert_eq!(p1.name, p2.name);
assert_eq!(p1.uuid, p2.uuid);

Get Player Name Change History

// Import lib
use mojang::Player;

// Make a new Player
// Then fetch and add Name History Data
let p = Player::new("Sigma76").unwrap().add_name_change().unwrap();;

// Get name at timestamp (ms)
// Due to API limitations any timestamp before the first name change will count as the accounts original name
assert_eq!(p.name_at(16362446560000).unwrap(), "Sigma76");

Get Player Skin URL

// Import lib
use mojang::Player;

// Make a new Player
// Then fetch and add skin data to it
let p = Player::new("Sigma76").unwrap().add_skin().unwrap();

assert_eq!(p.skin_url.unwrap(), "http://textures.minecraft.net/texture/c05f5efaf313464bde6060fb48aab8e6d07202cae19c764daee52029663df8b4");

🔮 Mojang Stats

Get Minecraft Sales Data

// Import Lib
use mojang::Stats;

// Get Stats for Default Metrics
let s = Stats::new().unwrap();

println!("Total Minecraft Sales: {}", s.total);
println!("Minecraft Sales 24h: {}", s.last24h);
println!("Minecraft Sales / Sec: {}", s.sale_per_sec);

Get all Mojang Game Sales

// Import Lib
use mojang::Stats;
use mojang::MetricKeys;

let s = Stats::new_metrics(vec![
    MetricKeys::ItemSoldMinecraft,
    MetricKeys::PrepaidCardRedeemedMinecraft,
    MetricKeys::ItemSoldCobalt,
    MetricKeys::ItemSoldScrolls,
    MetricKeys::PrepaidCardRedeemedCobalt,
    MetricKeys::ItemSoldDungeons,
  ])
  .unwrap();

println!("Total Sales: {}", s.total);
println!("Sales 24h: {}", s.last24h);
println!("Sales / Sec: {}", s.sale_per_sec);

🍞 Other

Check if server is blocked by Mojang

// Import Lib
use mojang::BlockedServers;

// Get Blocked Servers (Hashes only)
let blocked = BlockedServers::new().unwrap();

// Check if server is blocked
assert!(blocked.blocked("mc.playmc.mx"));

Dependencies

~2.5MB
~81K SLoC