Cactus/player/
mod.rs

1use reqwest::Client;
2use serde_json::Value;
3use std::error::Error;
4
5pub async fn get_uuid(username: &str) -> Result<String, Box<dyn Error>> {
6    let url = format!(
7        "https://api.mojang.com/users/profiles/minecraft/{}",
8        username
9    );
10    let client = Client::new();
11    let response = client.get(&url).send().await?;
12    let body = response.text().await?;
13    get_id(&body)
14}
15
16fn get_id(all: &str) -> Result<String, Box<dyn Error>> {
17    let v: Value = serde_json::from_str(all)?;
18    if let Some(id) = v.get("id") {
19        if let Some(id_str) = id.as_str() {
20            return Ok(id_str.to_string());
21        }
22    }
23    Err("Cannot find 'id', or wrong formatting".into())
24}