pub mod microsoft;
pub mod mojang;
pub mod azauth;
pub use microsoft::*;
pub use mojang::*;
pub use azauth::*;
use serde::{Deserialize, Serialize};
use crate::error::Result;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AuthResponse {
pub access_token: String,
pub client_token: String,
pub uuid: String,
pub name: String,
pub refresh_token: Option<String>,
pub user_properties: String,
pub meta: AuthMeta,
pub xbox_account: Option<XboxAccount>,
pub profile: Option<MinecraftProfile>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AuthMeta {
pub auth_type: String,
pub access_token_expires_in: u64,
pub demo: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct XboxAccount {
pub xuid: String,
pub gamertag: String,
pub age_group: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MinecraftProfile {
pub skins: Vec<MinecraftSkin>,
pub capes: Vec<MinecraftSkin>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct MinecraftSkin {
pub id: Option<String>,
pub state: Option<String>,
pub url: Option<String>,
pub variant: Option<String>,
pub alias: Option<String>,
pub base64: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct AuthError {
pub error: String,
pub error_type: Option<String>,
}