#![allow(dead_code)]
use fastnbt::error::Result;
use fastnbt::{from_bytes, Value};
use flate2::read::GzDecoder;
use serde::Deserialize;
use std::io::Read;
#[derive(Deserialize, Debug)]
#[serde(rename_all = "PascalCase")]
struct PlayerDat<'a> {
data_version: i32,
#[serde(borrow)]
inventory: Vec<InventorySlot<'a>>,
ender_items: Vec<InventorySlot<'a>>,
}
#[derive(Deserialize, Debug)]
struct InventorySlot<'a> {
id: &'a str, tag: Option<Value>,
#[serde(rename = "Count")]
count: i8,
}
fn main() {
let args: Vec<_> = std::env::args().skip(1).collect();
let file = std::fs::File::open(args[0].clone()).unwrap();
let mut decoder = GzDecoder::new(file);
let mut data = vec![];
decoder.read_to_end(&mut data).unwrap();
let player: Result<PlayerDat> = from_bytes(data.as_slice());
println!("{:#?}", player);
}