use serde::Deserialize;
#[derive(Deserialize)]
pub struct GameInfoResponse {
pub games: Games
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub struct Games {
pub quakecraft: GameData,
pub skyclash: GameData,
pub build_battle: GameData,
pub uhc: GameData,
pub legacy: GameData,
pub skyblock: GameData,
pub housing: GameData,
pub mcgo: GameData,
pub wool_games: GameData,
pub survival_games: GameData,
pub battleground: GameData,
pub murder_mystery: GameData,
pub arcade: GameData,
pub arena: GameData,
pub tntgames: GameData,
pub walls: GameData,
pub skywars: GameData,
pub vampirez: GameData,
pub prototype: GameData,
pub walls3: GameData,
pub bedwars: GameData,
pub paintball: GameData,
pub super_smash: GameData,
pub smp: GameData,
pub replay: GameData,
pub true_combat: GameData,
pub pit: GameData,
pub speed_uhc: GameData,
pub duels: GameData,
pub gingerbread: GameData
}
#[derive(Debug, Deserialize)]
pub struct GameData {
pub id: usize,
pub name: String,
#[serde(rename = "databaseName")]
pub database_name: String,
pub legacy: Option<bool>,
pub retired: Option<bool>
}
#[derive(Deserialize)]
pub struct ChallengesResponse {
pub challenges: Challenges
}
#[derive(Debug, Deserialize)]
pub struct Challenges {
pub arcade: Vec<ChallengeData>,
pub arena: Vec<ChallengeData>,
pub bedwars: Vec<ChallengeData>,
pub hungergames: Vec<ChallengeData>,
pub buildbattle: Vec<ChallengeData>,
pub truecombat: Vec<ChallengeData>,
pub duels: Vec<ChallengeData>,
pub mcgo: Vec<ChallengeData>,
pub murdermystery: Vec<ChallengeData>,
pub paintball: Vec<ChallengeData>,
pub quake: Vec<ChallengeData>,
pub skyclash: Vec<ChallengeData>,
pub skywars: Vec<ChallengeData>,
pub supersmash: Vec<ChallengeData>,
pub speeduhc: Vec<ChallengeData>,
pub gingerbread: Vec<ChallengeData>,
pub tntgames: Vec<ChallengeData>,
pub uhc: Vec<ChallengeData>,
pub vampirez: Vec<ChallengeData>,
pub walls3: Vec<ChallengeData>,
pub walls: Vec<ChallengeData>,
pub battleground: Vec<ChallengeData>,
pub woolgames: Vec<ChallengeData>
}
#[derive(Debug, Deserialize)]
pub struct ChallengeData {
pub id: String,
pub name: String,
pub rewards: Vec<ChallengeReward>
}
#[derive(Debug, Deserialize)]
pub struct ChallengeReward {
#[serde(rename = "type")]
pub reward_type: String,
pub amount: usize
}
#[derive(Deserialize)]
pub struct QuestsResponse {
pub quests: Quests
}
#[derive(Debug, Deserialize)]
pub struct Quests {
pub quake: Vec<Quest>,
pub walls: Vec<Quest>,
pub paintball: Vec<Quest>,
pub hungergames: Vec<Quest>,
pub tntgames: Vec<Quest>,
pub vampirez: Vec<Quest>,
pub walls3: Vec<Quest>,
pub arcade: Vec<Quest>,
pub arena: Vec<Quest>,
pub uhc: Vec<Quest>,
pub mcgo: Vec<Quest>,
pub battleground: Vec<Quest>,
pub supersmash: Vec<Quest>,
pub gingerbread: Vec<Quest>,
pub skywars: Vec<Quest>,
pub truecombat: Vec<Quest>,
pub skyclash: Vec<Quest>,
pub prototype: Vec<Quest>,
pub bedwars: Vec<Quest>,
pub murdermystery: Vec<Quest>,
pub buildbattle: Vec<Quest>,
pub duels: Vec<Quest>,
pub woolgames: Vec<Quest>
}
#[derive(Debug, Deserialize)]
pub struct Quest {
pub id: String,
pub name: String,
pub rewards: Vec<QuestReward>,
pub objectives: Vec<QuestObjective>,
pub requirements: Vec<QuestRequirement>,
pub description: String
}
#[derive(Debug, Deserialize)]
pub struct QuestReward {
#[serde(rename = "type")]
pub quest_type: String,
pub amount: usize
}
#[derive(Debug, Deserialize)]
pub struct QuestObjective {
pub id: String,
#[serde(rename = "type")]
pub obj_type: String,
pub integer: Option<usize>
}
#[derive(Debug, Deserialize)]
pub struct QuestRequirement {
#[serde(rename = "type")]
pub req_type: String
}
#[derive(Deserialize)]
pub struct GuildAchievementsResponse {
pub tiered: GuildAchievements
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub struct GuildAchievements {
pub prestige: GuildAchievement,
pub experience_kings: GuildAchievement,
pub winners: GuildAchievement,
pub online_players: GuildAchievement
}
#[derive(Debug, Deserialize)]
pub struct GuildAchievement {
pub name: String,
pub description: String,
pub tiers: Vec<GuildAchievementTier>
}
#[derive(Debug, Deserialize)]
pub struct GuildAchievementTier {
pub tier: usize,
pub amount: usize
}
#[derive(Deserialize)]
pub struct VanityPetsResponse {
pub types: Vec<VanityPet>
}
#[derive(Debug, Deserialize)]
pub struct VanityPet {
pub key: String,
pub name: String,
pub rarity: Option<String>,
pub package: String
}
#[derive(Deserialize)]
pub struct CompanionsResponse {
pub types: Vec<Companion>
}
#[derive(Debug, Deserialize)]
pub struct Companion {
pub key: String,
pub name: String,
pub rarity: Option<String>,
pub package: String
}